think_queue安装方法就不介绍了
(简单方法,完美实现) 主要使用linux脚本方法实现,以前介绍的太复杂了
以前介绍连接:https://blog.csdn.net/mark885/article/details/125611915
tp6_cmd.sh 脚本内容:
#!/bin/bash
## 说明-------------------Begin
## 功能--启动tp队列,运行失败时自动重新启动
## /www/server/php/74/bin php执行文件路径
## /www/wwwroot/www.baidu.com/think 项目根目录加上think
## queue:listen 命令名称或comand中创建的自定义命令名称
## 保存到任意位置,给文件执行权限,chmod u+x /www/wwwroot/www.baidu.com/tp6_cmd.sh
## vim或vi的命令模式下,输入命令:set fileformat=unix 或 set ff=unix 即可解决换行问题 ,查看设置结果命令:set ff
## 以下脚本中 = 号两边不要加空格哦
## 说明-------------------End.
#php执行文件路径
phpPath="/www/server/php/74/bin/php"
#tp项目根目录路径
basepath=$(cd `dirname $0`; pwd)
#给目录执行权限
chmod a+x "$basepath/think"
#启动队列
command1="$phpPath $basepath/think queue:listen"
result1=$(ps -ef | grep "`echo $command1`" | grep -v "grep")
#未启动则启动-队列
if [ ! -n "$result1" ]
then
echo "Starting queue process."
str=$(nohup $command1 >/dev/null 2>&1 &)
echo -e "\033[32mOk.\033[0m"
else
echo "Start think-queue has been started."
fi
result=$(crontab -l|grep -i "* * * * * $basepath/tp6_cmd.sh"|grep -v grep)
#未添加到任务则添加一条
if [ ! -n "$result" ]
then
echo -e "\033[32mAdd To Os Crontab.\033[0m"
echo "Export crontab data"
crontab -l > createcrontemp
echo "Add new crontab line"
echo "* * * * * $basepath/tp6_cmd.sh" >> createcrontemp
echo "Import crontab data"
crontab createcrontemp
echo "Delete temp file"
rm -f createcrontemp
echo -e "\033[32mAdd To Os Crontab Success.\033[0m"
else
echo "Add To Crontab Has Been Added."
fi
注意
1./www/wwwroot/www.baidu.com/tp6_cmd.sh这个文件(windows下编辑好代码上传服务器后),vim或vi的命令模式下,输入命令:set fileformat=unix 或 set ff=unix 即可解决换行问题 ,查看设置结果命令:set ff。
2.在脚本代码中修改自己服务器的php环境路径、项目路径。
3.脚本文件中可自行添加如定时器、workman等启动指令(解决多个常驻进程启动问题)。
4.进入到脚本所在目录,执行 ./tp6_cmd.sh 。只需执行1次,以后会自动重启。
脚本实现功能
实时检测ThinkPHP6的think_queue自动重启,服务重启后自动重启ThinkPHP6的think_queue