标签: $timeout
-
本文在 Laravel 9 中验证了队列任务超时机制的运行情况。作者通过多次测试发现,任务超时功能在 Windows 系统因缺少 pcntl 扩展而无法生效,需在 Linux 环境下运行。实验过程中,使用 sleep() 函数会导致任务卡住且使尝试次数设置失效,相关日志与数据库记录均不符合预期。移除 sleep() 并采用其他方式模拟超时后,配合 $tries、$failOnTimeout 及 $backoff 属性,队列任务的失败与重试行为基本符合逻辑。结论是 sleep() 方法会干扰超时及重试机制的正确执行。
-
针对在 Windows 10 中测试任务超时功能无效的问题,文章记录了在 Laravel 6 线上 Linux 服务器中进行测试的过程。在 Job 中添加长时间 sleep 后发现设置未生效,经排查确认是因为队列处理器作为常驻进程会在内存中保留启动时的应用状态,导致无法检测到代码变更。通过执行 php artisan queue:restart 命令重启队列处理器后,再次执行任务超过限制时间自动失败,结果符合预期。
