当Laravel 5应用程序出现故障(计划维护或其他情况),但几分钟后它恢复正常时,Laravel会自动知道赶上并运行那些错过的任务吗?
如果没有,处理可能错过任务的追赶的首选方法是什么?
答案 0 :(得分:0)
似乎任务调度系统太简单了,无法确保任务在停机后运行(例如,如果它每天运行或在特定时间运行);正如所宣传的那样,它只是按照给定的时间表运行任务。
从本质上讲,停机/维护可以“错过公共汽车”。
确保关键任务运行:
if (time() > ($task->lastRunTime + $task->intervalTime)) dispatch(...)
或; if (time() >= $task->nextRunTime) dispatch(...)
根据您的申请,具体实施方式会有所不同;使用模型的好处是,您可以轻松地使其适应您的应用程序的需求,例如跟踪指标。