laravel - Laravel artisan 有没有命令管理器
问题描述
我的 laravel 生产应用程序中几乎没有命令。
php artisan serve
php artisan queue:work
php artisan roulette:color
php artisan roulette:even
我正在使用带有 ubuntu 自定义主机的 vpn
现在我正在制作 4 个不同的屏幕来运行这些永远运行的命令
但有时很少崩溃不知道为什么,我必须再次找到哪个屏幕崩溃了命令
我正在寻找可以轻松管理我的命令的任何经理
谢谢你
解决方案
Supervisor 是 Linux 操作系统的进程监视器,queue:work
如果进程失败或保持任何其他命令处于活动状态,它将自动重新启动您的进程。要在 Ubuntu 上安装 Supervisor,您可以使用以下命令:sudo apt-get install supervisor。
配置主管
主管配置文件通常存储在/etc/supervisor/conf.d
目录中。在这个目录中,你可以创建任意数量的配置文件来指示主管应该如何监控你的进程。例如,让我们创建一个laravel-worker.conf
启动和监视queue:work
进程的文件:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/path/to/you/app.com/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/path/to/you/app.com/worker.log
stopwaitsecs=3600
在本例中,该numprocs
指令将指示 Supervisor 运行 8queue:work
个进程并监视所有进程,如果它们失败则自动重新启动它们。您应该更改指令的queue:work sqs
部分command
以反映您所需的队列连接。
启动主管
创建配置文件后,您可以使用以下命令更新 Supervisor 配置并启动进程:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*
有关 Supervisor 的更多信息,请参阅Supervisor 文档。
推荐阅读
- sql - 解析子串
- javascript - 我的 jQuery Ajax 成功功能不起作用,不显示控制台的输出并且不验证表单
- sql - 对 SQL Server (T-SQL) 中的行集执行“for-loop”逻辑
- android - Windows 10 中的 Gradle 文件目录
- windows - 从不同的 Windows 域访问 Bitbucket Git 存储库
- mysql - MySQL 返回特定日期
- git - 在 git rebase 中仅列出我们删除、我们添加、他们删除等的文件
- python - 对 MNIST 数字数据集进行分类的 4 层感知器神经网络无法正常工作
- javascript - 如果用户单击屏幕上的任意位置,如何关闭菜单?
- python - 如果超参数调整的影响很小,我该如何改进我的 XGBoost 模型?