【发布时间】:2017-07-08 23:13:29
【问题描述】:
Laravel 5 有一个通过 cron 表达式工作的调度系统。但是,他们的 cron 表达式有 6 个位置:
* * * * * *
而您的典型 cron 格式只有 5 个
* * * * *
分钟 - 小时 - 月份 - 月份 - 星期几
我完全不知道每个位置在 laravel 中的含义,因为位置数量不标准......有人可以告诉我每个位置的含义吗?
【问题讨论】:
Laravel 5 有一个通过 cron 表达式工作的调度系统。但是,他们的 cron 表达式有 6 个位置:
* * * * * *
而您的典型 cron 格式只有 5 个
* * * * *
分钟 - 小时 - 月份 - 月份 - 星期几
我完全不知道每个位置在 laravel 中的含义,因为位置数量不标准......有人可以告诉我每个位置的含义吗?
【问题讨论】:
->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 位是年份值,它也恰好是唯一的可选位置。
【讨论】:
从 5.5 到 5.6 时发生了这种变化
这反映了在5.6之前,默认的$表达式有6个位置而不是5个,为什么? laravel 用来解析 Cronjobs 的包发生了变化。
Laravel 将其依赖关系从 mtdowling/cron-expression 移至 dragonmantank/cron-expression 中的 5.6,其中包括 PHP 7.0 支持,并修复了许多潜在问题。新库 añlso 放弃了对第 6 位(年位)的支持。
【讨论】: