启动消息队列

html

短说3.2版本及之后****需要配置

一、PHP要求

proc_open****函数不能被禁用

宝塔上解禁proc_open函数

删除后,重启下PHP

非宝塔环境

可在php.ini那里搜索disable_functions,看下该项里是否有proc_open,有的话,就删掉该值,然后重启PHP。

二、运行queue

1)、直接执行queue.sh命令

① 网站根目录下的queue.sh赋予可执行权限

chmod +x queue.sh

② 执行queue.sh

./queue.sh

③ 将该执行命令加入到开机启动项中。(注:可能会意外中断,需要手工重新启动)

echo "sh /www/wwwroot/duanshuo/queue.sh" >> /etc/rc.local

2)、使用supervisor(推荐)

1、宝塔上部署

① 搜索supervisor,下载安装

② 根据下图填写配置

启动命令:php think queue:listen

2、原生部署

① 安装Python包管理工具(easy_install)
yum install python-setuptools

出现如图问题,就执行下面那条

yum install python3-setuptools
② 安装Supervisor
easy_install supervisor

当执行出现下图问题,需要下载supervisor的安装包来进行安装

tar -zxvf supervisor-4.2.3.tar.gz
cd supervisor-4.2.3
python setup.py install
③ 配置Supervisor应用守护

通过运行echo_supervisord_conf程序生成supervisor的初始化配置文件,如下所示:

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf
mkdir /etc/supervisor/conf.d

然后在supervisord.conf的文件尾部添加如下配置:

cat>>/etc/supervisor/supervisord.conf<<EOF

;conf.d 为配置表目录的文件夹,需要手动创建
[include]
files = conf.d/*.conf
EOF

修改存储在/tmp文件位置

sed -i 's#/tmp/supervisor#/var/tmp/supervisor#g' /etc/supervisor/supervisord.conf

/etc/supervisor/conf.d/那里创建一个.conf文件,填写以下内容

[program:duanshuoQueue] ;程序名称,终端控制时需要的标识。消息队列程序,根据项目名称自行修改
command=php think queue:listen ; 运行程序的命令,启动消息队列的命令,不能改
directory=/www/wwwroot/duanshuo/ ; 命令执行的目录,项目根目录,根据实际修改
autorestart=true ; 程序意外退出是否自动重启
stderr_logfile=/www/wwwroot/duanshuo/queue.err.log ; 错误日志文件,根据实际修改
stdout_logfile=/www/wwwroot/duanshuo/queue.out.log ; 输出日志文件,根据实际修改
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=www ; 进程执行的用户身份,宝塔为www用户,其他环境需要自己确定
stopsignal=INT

运行supervisord

supervisord -c /etc/supervisor/supervisord.conf

查看是否生效

supervisorctl status

成功的效果:

PS:如果服务已启动,修改配置文件可用“supervisorctl reload”命令来使其生效

④ 配置开机启动

新建一个/usr/lib/systemd/system/supervisord.service文件

vim /usr/lib/systemd/system/supervisord.service
# dservice for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

执行命令

systemctl enable supervisord

验证是否为开机自启

systemctl is-enabled supervisord

配置完成了!!!

⑤ 常用的相关管理命令
supervisorctl restart <application name> ;重启指定应用
supervisorctl stop <application name> ;停止指定应用
supervisorctl start <application name> ;启动指定应用
supervisorctl restart all ;重启所有应用
supervisorctl stop all ;停止所有应用
supervisorctl start all ;启动所有应用

supervisor安装和使用参考:查看原文

客服微信二维码
咨询客服小番茄
公众号二维码
扫码关注公众号