假设我的服务器在12:00:05向5个客户端设备发送相同的请求。我想等待90秒(直到12:01:35),然后检查哪些客户端对请求做出了适当的响应,并做一些其他的事情。完成这样的事情的最好方法是什么?
我是否应该排队作业并在开始时使用sleep(90)
?问题是这种类型的作业总是需要至少90秒才能完成,并且服务器默认设置为60秒后超时。我想我可以更改服务器设置,但如果我的其他任务超过60秒,则仍应视为超时。
我应该把一个计划任务排队吗?这里的问题是我认为Laravel和cron只能给你调度精度到最近的一分钟(12:01或12:02,而不是12:01:35)。
你可以在Laravel中使用延迟调度。https://laravel.com/docs/master/queues delayed-dispatching
$job = (new YourEvent($coolEvent))->delay(Carbon::now()->addSeconds(90));
这将在任务添加到队列后90秒运行任务。