首页 > 解决方案 > 延迟运行 Laravel 计划

问题描述

我有很多 Laravel 作业,每分钟都运行一次,

但我不希望所有这些都同时运行,

是否可以让它们中的一些运行每分钟但延迟 1-2 秒?

像这样的东西:

Job 1 > Every Minute at 00 seconds
Job 2 > Every minute at 05 seconds
Job 3 > Every minute at 10 seconds

对于单独的 cron 作业,我这样做:* * * * * ( sleep 30 ; /path/to/executable)

但我不知道如何使用 Laravel Schedules

标签: phplaravelcronscheduled-tasks

解决方案


正如我从您的问题中看到的那样,您可能需要注意运行工作,以防返回以前的工作事件或类似的事情。

如您所见,laravel 作业在服务器 cron 作业中的可访问时间与 * * * * * 表示所有天每分钟的时间相同。

所以我通过制作自定义命令来管理它:

php artisan make:command

在我的自定义命令中,我检查了是否发生了什么事,然后我的工作就会运行......

您还可以在另一个作业中创建一个作业,这取决于父作业,它会执行与否。


推荐阅读