Laravel Task Scheduling设置为每分钟运行一次,但仅运行一次

ale*_*tre 5 scheduling task laravel

我正在使用Laravel任务计划。我定义了一个自定义command并将其设置为每分钟运行一次,例如:

$schedule->command('dailyk')->everyMinute();
Run Code Online (Sandbox Code Playgroud)

然后,我使用以下命令运行任务:

php /var/www/stockhit/artisan schedule:run 1>> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

我使用日志来检查自定义命令是否继续运行。但是,它不是每分钟运行一次。相反,它只运行了一次。

如何使它每分钟运行一次,而不是一次?

Eli*_*nti 8

请参阅任务调度

这是您需要添加到服务器的唯一 Cron 条目:

* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1

这个 Cron 每分钟都会调用 Laravel 命令调度程序。然后,Laravel 会评估您的计划任务并运行到期的任务。

Laravel 的任务调度器不会留在内存中,它需要每分钟运行一次。然后它将检查在那一分钟内需要运行哪些任务并运行它们。当您使用 PHP 运行任务调度程序时,它只运行一次,它需要 cron 每分钟运行一次。

  • 如果我们每分钟调用一次,会影响服务器的性能吗? (2认同)

jcl*_*s52 6

您需要添加一个 cron 作业。在 ubuntu 上使用命令

crontab -e
Run Code Online (Sandbox Code Playgroud)

打开您的 cron 作业文件,然后添加

* * * * * php /var/www/stockhit/artisan schedule:run 1>> /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)