後,我有這樣的工作:Laravel隊列重新啓動60秒
//Run very intensive script that generates files
//Notify the user that the job is done
我知道腳本需要4-5分鐘即可運行,因爲它是生成的所有文件所需要的時間。 然而,正好60秒後,作業被刪除(即我沒有在我的jobs
數據庫表中看到它)並且用戶得到通知。然後,每60秒,直到腳本完成,用戶會收到通知,表示該作業已完成。
作業不會失敗。該作業僅在jobs
表中前60秒出現。文件生成腳本只運行一次。
我用導師:
[program:queue]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work --timeout=600 --queue=high,low
user=forge
numprocs=8
directory=/home/forge/default
stdout_logfile=/home/forge/default/storage/logs/supervisor.log
redirect_stderr=true
這裏是我的數據庫配置:
'database' => [
'driver' => 'database',
'table' => 'jobs',
'queue' => 'low',
'expire' => 600,
],
的行爲是相同的,如果我使用Redis的
'redis' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => 'low',
'expire' => 600,
],
哇...我怎麼會錯過呢?非常感謝! – Wistar