1 为什么引入Roadrunner?
禅道从开源版18.9、企业版8.9,旗舰版4.9,IPD版1.1.1 开始,为了提升计划任务的性能与稳定性,引入了Roadrunner服务,负责管理复杂,耗时的定时任务,确保任务在后台运行完成,并维护后台任务的运行状态。
注意:
- 运行Roadrunner后,会在后台运行4个PHP进程。
- 初始情况下,Roadrunner与4个PHP进程占用200M左右的内存。
- 18.9 版本开始,一键安装包、docker镜像,包含了Roadrunner服务。
2 什么情况下需要运行Roadrunner?
Roadrunner 并不是必须的,当现有的定时任务运行正常时,不需要通过Roadrunner来管理定时任务。
当有如下情况时,可考虑单独运行Roadrunner,来管理定时任务:
- 数据库单表记录数超过10万
- 定时任务执行失败
- 定时任务运行时影响正常业务
3 如何运行Roadrunner
下文会依次介绍源码与一键安装包部署的禅道,如何下载与运行Roadrunner,以Linux系统为例,root用户执行。
3.1 源码部署的禅道
3.1.1 下载Roadrunner
# 下载到/tmp 目录
curl -skL https://github.com/roadrunner-server/roadrunner/releases/download/v2023.3.5/roadrunner-2023.3.5-linux-amd64.tar.gz | tar xvz -C /tmp/
# 移动到 /usr/local/bin 目录
mv /tmp/roadrunner-2023.3.5-linux-amd64/rr /usr/local/bin
# 查看版本信息
rr -v
rr version 2023.3.5 (build time: 2023-11-16T14:06:45+0000, go1.21.4), OS: linux, arch: amd64
更多系统的下载地址,请访问release
3.1.2 运行Roadrunner
注意:运行Roadrunner之前,请确保禅道的版本高于开源版 18.9 ,企业版 8.9,旗舰版 4.9,IPD版 1.1.1
# 运行Roadrunner
nohup /usr/local/bin/rr serve -w <禅道代码目录>/roadrunner -p > /var/log/zentao-rr.log 2>&1 &
# 查看运行日志
cat /var/log/zentao-rr.log
注意: 请执行Roadrunner之前,请确保PATH变量中包含php的二进制文件。
3.1.3 关闭Roadrunner
# 通过rr命令关闭
/usr/local/bin/rr stop -w <禅道代码目录>/roadrunner
3.2 一键安装包部署
3.2.1 下载Roadrunner
# 下载到/tmp 目录
curl -skL https://github.com/roadrunner-server/roadrunner/releases/download/v2023.3.5/roadrunner-2023.3.5-linux-amd64.tar.gz | tar xvz -C /tmp/
# 移动到 /opt/zbox/bin 目录
mv /tmp/roadrunner-2023.3.5-linux-amd64/rr /opt/zbox/bin
# 查看版本信息
/opt/zbox/bin/rr -v
rr version 2023.3.5 (build time: 2023-11-16T14:06:45+0000, go1.21.4), OS: linux, arch: amd64
3.2.2 运行Roadrunner
注意:运行Roadrunner之前,请确保禅道的版本高于开源版 18.9 ,企业版 8.9,旗舰版 4.9,IPD版 1.1.1
# 运行Roadrunner
export PATH=$PATH:/opt/zbox/bin
nohup /opt/zbox/bin/rr serve -w <禅道代码目录>/roadrunner -p > /opt/zbox/logs/rr.log 2>&1 &
# 查看运行日志
cat /opt/zbox/logs/rr.log
注意:
- <禅道代码目录> 替换为实际的禅道版本,如
/opt/zbox/app/zentao/roadrunner
3.2.3 关闭Roadrunner
# 通过rr命令关闭
/usr/local/bin/rr stop -w <禅道代码目录>/roadrunner
注意:
- <禅道代码目录> 替换为实际的禅道版本,如
/opt/zbox/app/zentao/roadrunner
4 其他说明
- Roadrunner更新比较频繁,请关注禅道官方发布时使用的版本,为了减少兼容性问题,尽量参考禅道官方使用的版本。
- 如果通过
rr
命令无法停止Roadrunner服务,可以直接通过kill -9
的方式关闭。