我正在使用 Supervisord 来监视 Laravel 4.2 中的队列。这是我的 Supervisord 配置文件:
[program:webhooks]
command=php artisan queue:work --daemon --queue=webhooks --tries=3 --sleep=5
directory=/var/www/html/app
stdout_logfile=/var/www/html/app/app/storage/logs/webhooks_supervisord.log
redirect_stderr=true
autostart=true
autorestart=true
正如我在 Laravel 文档中看到的:
守护进程队列工作人员在处理之前不会重新启动框架
每个工作。
据我所知,这意味着如果我对框架中的其中一个文件进行更改,该更改将不会反映在处理队列的守护进程中。例如,如果我的一个文件说echo 1;
我改为echo 2;
,队列正在使用的框架版本仍然会说echo 1
,直到我重新启动队列。为了让这些新的更改生效,我需要运行:
sudo supervisorctl
supervisor> stop webhooks
supervisor> start webhooks
我认为这是必需的吗?或者是否有另一种方法来处理此问题,以便在不重新启动队列的情况下拾取对文件的新更改?
你不需要!只需执行以下操作,主管就会自动使用新代码重新启动。
$> CD /your/project/folder
$> php artisan queue:restart
原因是 artisan 命令将停止队列,supervisor 将按照您的设置强制重新启动autorestart=true
在配置中。
要确认,只需执行以下操作并查看uptime
在输出中:
$> sudo supervisorctl status
--
如果您更改了supervisord程序的配置,还可以执行以下操作:
$> sudo supervisorctl update
这将重新加载配置,根据需要添加/删除,并将重新启动受影响的主管programs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)