【问题标题】:Laravel 5 CronjobLaravel 5 定时任务
【发布时间】:2017-07-08 23:13:29
【问题描述】:

Laravel 5 有一个通过 cron 表达式工作的调度系统。但是,他们的 cron 表达式有 6 个位置:

* * * * * *

而您的典型 cron 格式只有 5 个

* * * * *

分钟 - 小时 - 月份 - 月份 - 星期几

我完全不知道每个位置在 laravel 中的含义,因为位置数量不标准......有人可以告诉我每个位置的含义吗?

【问题讨论】:

    标签: laravel laravel-5 cron


    【解决方案1】:

    ->cron() 创建\Cron\CronExpression 的一个实例。如果你检查一下,你会看到:

    const MINUTE = 0;
    const HOUR = 1;
    const DAY = 2;
    const MONTH = 3;
    const WEEKDAY = 4;
    const YEAR = 5;
    

    so ->cron(分钟、小时、日、月、工作日、年)

    这与标准 cron 格式相同:https://en.wikipedia.org/wiki/Cron

    【讨论】:

    • 我不明白这是如何回答这个问题的。因此,该实例是使用 6 个参数创建的,但标准 cron 格式(以及您链接到的那个)只有 5 个。
    【解决方案2】:

    第 6 位是年份值,它也恰好是唯一的可选位置。

    【讨论】:

      【解决方案3】:

      5.55.6 时发生了这种变化

      https://github.com/illuminate/console/commit/129037f27788d8132d602c3c157d85a0b262b593#diff-b4df1fac4dc6266390b393adc51f1967

      这反映了在5.6之前,默认的$表达式有6个位置而不是5个,为什么? laravel 用来解析 Cronjobs 的包发生了变化。

      Laravel 将其依赖关系从 mtdowling/cron-expression 移至 dragonmantank/cron-expression 中的 5.6,其中包括 PHP 7.0 支持,并修复了许多潜在问题。新库 añlso 放弃了对第 6 位(年位)的支持。

      https://ctankersley.com/2017/10/12/cron-expression-update

      【讨论】:

        猜你喜欢
        • 2017-10-14
        • 2018-08-29
        • 2017-06-27
        • 2013-08-07
        • 2020-06-02
        • 2015-09-28
        • 2020-02-04
        • 2016-05-26
        相关资源
        最近更新 更多