[TOC] ## 环境 Centos ### 配置supervisor实现进程守护 #### 1.安装supervisor ~~~ yum install Supervisor ~~~ #### 2.启动服务 ~~~ supervisord -c /etc/supervisord.conf ~~~ 进入 cd /etc 目录 找到supervisord.conf 配置文件 和 supervisord.d 文件夹,使用vim编辑supervisord.conf文件,拉到最底部我们可以看到 ![](https://img.kancloud.cn/cd/ab/cdab86f7f44629ad43e893fd10c85b0d_575x142.png) files = supervisord.d/\*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件 #### 3.编辑配置文件 随后我们在supervosprd.d中创建一个:blog-work.ini文件并编辑如下 ~~~ [program:blog-work] process_name=%(program_name)s_%(process_num)02d command=/usr/local/php/bin/php /www/blog/artisan queue:work database --sleep=3 --tries=3 --daemon autostart=true autorestart=true user=root numprocs=2 redirect_stderr=true stdout_logfile=/www/blog/storage/logs/queue.log ~~~ #### 4.重载配置文件 执行命令使用心得配置文件运行supervisor服务 ~~~ supervisorctl reload //重新加载配置文件 ~~~ : 更多详细操作 参见 [supervisor章节](https://www.kancloud.cn/macho_wml/macho/2388246) ## 先根据laravel文档 进行一番配置 ### 数据库 > 要使用 database 队列驱动程序,你需要一个数据库表来保存任务。要生成创建此表的迁移,请运行 queue:table Artisan 命令。一旦迁移已经创建,你可以使用 migrate 命令迁移你的数据库: php artisan queue:table php artisan migrate ### **代码逻辑** #### 1.创建一个队列 `php artisan make:job TestJob` > 终端执行上面命令 会app/job生成一个TestJob类 ![](https://img.kancloud.cn/07/9b/079b389c68c9a869a9f92f42dabf2d08_1031x823.png) ### 2.调用队列 ![](https://img.kancloud.cn/9e/b3/9eb39a19a1e3bfc471c180fc5ed8bae6_619x109.png) ### 3.本地终端测试 `php artisan queue:listen` ![](https://img.kancloud.cn/b5/f6/b5f6150eaf1b7f0a5db611fcb64092ff_560x541.png) ### 4.常用命令 ~~~ php artisan queue:retry all php artisan queue:failed php artisan queue:listen php artisan queue:retry edbc7cae-44d7-44b6-9c2b-14a310c07ed6 ~~~