1

我需要运行一个每年季度创建数据库表的命令,我找到了这个命令

$schedule->command('test:create-table table_test')->quarterly();

但是我想在一周前运行这个命令,只是为了确保在我开始向其中插入数据之前已经创建了表。

实现这一目标的最佳方法是什么?

4

2 回答 2

1

在底层,Laravel使用 cron 语句将“季度”实现为每个季度的第一天 00:000 0 1 1-12/3 *

虽然没有内置的“weekBefore”方法,但有一种cron()方法,您可以通过在单个 cron 语句中选择特定月份的第 24 天来获得相当接近的结果。例如:

// Run on the 24th of Mar, Jun, Sept, and Dec
$schedule->command('foo')->cron('0 0 24 3,6,9,12 *');

如果您想精确到前一周,则必须将其分解为至少两个语句(因为 Mar 和 Dec 有 31 天,而 Jun 和 Sep 有 30 天)。

于 2021-12-03T22:40:56.467 回答
0

我认为这会帮助你:$schedule->command('test')->yearlyOn(12, 24, 0);

第一个值12是 12 月的月份,而 the24是一年结束前的那一天。最后一个值0是时钟上的时间!

这是一年结束前的一周。但你需要每季度你也可以使用CRON

于 2021-12-03T17:45:38.327 回答