我在 laravel 中使用主管,有时我的主管工作正常,有时出现错误。 FATAL 退出太快(进程日志可能有详细信息)。
这是我的主管文件。
[program:laravel-worker-mail]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/new-project/artisan queue:work mongodb --sleep=10 --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/new-project//storage/logs/worker.log
如果有人对此有好的想法,请建议我。
在我的例子中,主管退出得非常快,因为它在 startsecs 之前完成,并且由于未定义 startsecs,因此它使用默认值 1。
设置
startsecs=0
解决了我的问题。
我自己通过搜索和应用多种方法解决了这个问题,我通过在命令中添加
--daemon
找到了我的解决方案
下面更新了代码
[program:laravel-worker-mail]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/new-project/artisan queue:work mongodb --sleep=10 --tries=3 --daemon
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/new-project/storage/logs/worker.log
对于尽管遵循已接受的答案但仍然遇到相同问题的任何人。事实证明,我引用了错误的队列方法“sqs”,而不是我正在使用的“数据库”。
command=php /var/www/html/new-project/artisan 队列:工作数据库 --sleep=10 --tries=3 --daemon
[program:laravel-worker-mail]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/new-project/artisan queue:work database --sleep=10 --tries=3 --daemon
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/new-project/storage/logs/worker.log
当我尝试在实际上没有
php artisan horizon
可供运行的目录中运行 artisan
时,我也收到此消息。
我觉得发布这个有点傻,但我在为新网站克隆服务器时遇到了这个问题 - 并且主管conf文件将命令指向错误的目录,因为新网站托管在不同的位置。
因此,使用示例我的 /etc/supervisor/conf.d/laravel-worker.conf 需要进行如下更改:
[program:laravel-worker-mail]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/new-project/artisan queue:work database --sleep=10 --tries=3 --daemon
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/new-project/storage/logs/worker.log
对此:
[program:laravel-worker-mail]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/new-project-2/artisan queue:work database --sleep=10 --tries=3 --daemon
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/html/new-project-2/storage/logs/worker.log