使用 queue delay 總是超過設定時間,不知為何?

各位好,我之前寫的專案被說出有個問題,我有一個Job用來將網頁轉成PDF
那我觸發這個工作後,先把它放在Queue中,希望延遲10分鐘 (10*60sec)在來運作這個工作

$job = (new TurnPageToPDF($order))->onQueue('PDF')->delay(10 60);
$this->dispatch($job);

可是每次當這個工作開始運行都已經過了20幾分鐘了
遲遲找不出原因

而我所使用queue的設定如下
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'default',
'expire' => 60,
],

當上面的程式執行後,我會在我的資料表中看到
http://ppt.cc/HZpGI@.jpg

程式的確有把工作放到database的 jobs 資料表中
可是不論我怎麼樣想要去觸發這個工作就是沒反應
php artisan queue:work --daemon --queue="PDF"

而這個工作就會在超過十分鐘,大約20幾分鐘之後才被我的supervisor觸發 ....

[program:worker-test]
command=php /var/www/project/artisan --env=production queue:work --daemon --queue="PDF"
autostart=true
autorestart=true
stderr_logfile=/var/log/lara_PDF_queue.err.log
stdout_logfile=/var/log/lara_PDF_queue.out.log

真的不知道為什麼,不知道有沒有前輩可以指導一下

感激不盡

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 2

->delay(10 60); , ->delay(10 * 60); ?

试试 ->delay(Carbon::now()->addMinutes(10));

7年前 评论

應該不是這個問題,因為在job裡面有的欄位是available_at 跟 created_at
然後這兩個欄位的值都沒有錯誤,available_at 得值是 created_at得值 加上十分鐘

而且我也嘗試過您所說的方式,也是無解 ...
不知道有沒有其他人遇過同樣的問題

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!