📜  在 macos 上为 laravel 设置 cron - PHP (1)

📅  最后修改于: 2023-12-03 14:51:01.718000             🧑  作者: Mango

在 macOS 上为 Laravel 设置 Cron

在 macOS 上为 Laravel 设置 Cron 通常非常简单,可以通过使用内置的计划任务管理器 launchctl,并按照以下步骤执行:

步骤一:创建 Cronjob

创建 Laravel Cronjob 的最简单方法是使用 Artisan 命令。在终端应用程序中,切换到 Laravel 应用程序的目录并运行以下命令:

php artisan make:command MyCronCommand

使用上述命令创建一个新的 Artisan 命令,该命令将在 Laravel 应用程序中访问,并将在其中添加逻辑以处理 Cronjob。

步骤二:编辑 MyCronCommand

打开路径为“app/Console/Commands/MyCronCommand.php”的文件,然后添加要在 Cronjob 中执行的代码。以下代码段:

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class MyCronCommand extends Command
{
    protected $signature = 'my:cron';

    protected $description = 'My Cronjob';

    public function handle()
    {
        // Your code here
    }
}

在该文件中注册了通过命令“my:cron”调用的 Cronjob,并已准备好在该命令的 handle 函数中添加要执行的实际代码。

步骤三:设置 Cronjob

打开终端应用程序并输入以下命令:

crontab -e

这将打开一个文本编辑器,并显示当前用户的 Cronjob 定义。将以下行添加到文件底部:

* * * * * cd /path-to-your-project && php artisan my:cron >> /dev/null 2>&1

请注意,该 Cronjob 将在每个一分钟中的每一秒自动执行。您可以修改此时间表以满足您的需求。我们正在调用 Artisan 命令 “my:cron”,因此 $signature 属性应该被改为 "my:cron"

调用 cd 命令更改到 Laravel 应用程序的目录,然后使用 php artisan 命令调用该命令。然后使用 >> /dev/null 2>&1 将输出重定向到黑洞。

步骤四:启动 Cronjob

完成上述步骤后,我们需要启动 launchctl,它将在指定的时间表上运行 Cronjob。运行以下命令以启动 Cronjob:

brew services start cron

完整的代码示例如下:

php artisan make:command MyCronCommand

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;

class MyCronCommand extends Command
{
    protected $signature = 'my:cron';

    protected $description = 'My Cronjob';

    public function handle()
    {
        // Your code here
    }
}

crontab -e

* * * * * cd /path-to-your-project && php artisan my:cron >> /dev/null 2>&1

brew services start cron

现在,您已经为 Laravel 应用程序设置了 Cronjob。它将在您指定的时间表上自动运行,以执行逻辑代码。