我如何延迟Laravel 5.2的工作时间?

时间:2016-09-19 22:17:11

标签: php laravel-5 cron queue

假设我的服务器在12:00:05向5个客户端设备发送相同的请求。我想等待90秒(直到12:01:35),然后检查哪些客户端已对请求做出了适当的响应,并做了其他一些事情。完成这样的事情的最佳方法是什么?

我应该排队工作并在开始时使用sleep(90)吗?问题是这种类型的作业总是需要至少90秒才能完成,默认情况下服务器设置为60秒后超时。我想我可以更改服务器设置,但是如果超过60秒,我的其他工作仍然应该被认为已超时。

我应该排队计划的任务吗?这里的问题是我认为Laravel和cron只给你调度精度到最近的分钟(12:01或12:02,但不是12:01:35)。

1 个答案:

答案 0 :(得分:9)

您可以在Laravel中为队列使用延迟调度。 https://laravel.com/docs/master/queues#delayed-dispatching

$job = (new YourEvent($coolEvent))->delay(Carbon::now()->addSeconds(90));

这将在将任务添加到队列后90秒运行任务。