【问题标题】:Run Laravel Schedule with delay延迟运行 Laravel 计划
【发布时间】:2020-02-07 11:39:29
【问题描述】:

我有很多 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 来做到这一点

【问题讨论】:

    标签: php laravel cron scheduled-tasks


    【解决方案1】:

    我认为最简单的方法是在 handle() 方法的第一行的命令中使用 php 函数 sleep()

    【讨论】:

      【解决方案2】:

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

      如您所见,laravel 作业在服务器 cron 作业中具有与 * * * * * 相同的可访问时间,这意味着每一天都是一分钟。

      所以我通过制作自定义命令来解决这个问题:

      php artisan make:command
      

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

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

      【讨论】:

        猜你喜欢
        • 2013-01-30
        • 1970-01-01
        • 2019-04-01
        • 2016-06-20
        • 1970-01-01
        • 2015-05-19
        • 2019-05-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多