【发布时间】:2018-10-21 10:53:00
【问题描述】:
我的工作最多需要 6 个小时才能完成。我正在为队列使用 laravel 数据库驱动程序,以下是工作人员:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/laravel/artisan queue:work --queue=default,high,medium,low,least --daemon --timeout=86400
autostart=true
autorestart=true
user=root
numprocs=50
redirect_stderr=true
stdout_logfile=/var/www/html/laravel/worker.log
问题:
执行时的作业会立即从jobs 表中删除,进程开始执行队列。但是,该作业尚未完成,但仍会从 jobs 表中删除。理想情况下,它应保留在jobs 表中,直到工作未完成。
【问题讨论】:
-
Ideally it shall stay in jobs table till the job is not completed.数据库驱动程序不是这样工作的,你为什么要关心它是否在作业表中直到它完成? -
为了跟踪作业是否完成,这就是要注意是否为这个的原因。
-
jobs 表不会提供给您。在 Job 本身中添加您自己的逻辑以在事件完成时启动它..
-
非常感谢您的回复。我在 Github 上检查了 Laravel,他们说这只是框架的一部分。请参阅github.com/laravel/framework/issues/…如果我犯了任何错误,请提出建议。
标签: laravel laravel-5 laravel-5.6 supervisord