【发布时间】:2020-03-10 07:11:56
【问题描述】:
我对 Laravel 调度程序很陌生。目前每个月的第一天都会发送一封电子邮件,如下所示:
$schedule->job(new SendMonthlyUpdate)
->monthlyOn(1, '9:00')
->timezone('Europe/Amsterdam');
如果我想总是在每月的第一天发送它,我将如何更改此设置,周末除外?如果第 1(或第 2)天在周末,则应在周末后的星期一触发。
我正在考虑这样的事情:
$schedule->job(new SendMonthlyUpdate)
->monthlyOn(1, '9:00')
->weekdays()
->timezone('Europe/Amsterdam');
但我不确定:
A.如果第一天在周末,这将完全跳过此作业,而不是稍后发送?
B.如何测试这个
任何帮助将不胜感激!
【问题讨论】:
-
是的,如果该月的第一天是周末,您的解决方案将跳过该工作,并且该工作永远不会完成。对于测试,您别无选择,只能每次更改系统的日期,但它应该可以工作。