📅  最后修改于: 2023-12-03 14:51:01.718000             🧑  作者: Mango
在 macOS 上为 Laravel 设置 Cron 通常非常简单,可以通过使用内置的计划任务管理器 launchctl,并按照以下步骤执行:
创建 Laravel Cronjob 的最简单方法是使用 Artisan 命令。在终端应用程序中,切换到 Laravel 应用程序的目录并运行以下命令:
php artisan make:command MyCronCommand
使用上述命令创建一个新的 Artisan 命令,该命令将在 Laravel 应用程序中访问,并将在其中添加逻辑以处理 Cronjob。
打开路径为“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
函数中添加要执行的实际代码。
打开终端应用程序并输入以下命令:
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
将输出重定向到黑洞。
完成上述步骤后,我们需要启动 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。它将在您指定的时间表上自动运行,以执行逻辑代码。