通过Roadrunner管理定时任务 分享链接

作者:zhouyq 最后编辑:禅道-Bee 于 2024-01-04 11:36:38 浏览量:2934
摘要:禅道从开源版18.9、企业版8.9,旗舰版4.9,IPD版1.1.1 开始,为了提升计划任务的稳定性与性能,增加了Roadrunner服务,一键安装包与Docker自动包含该服务,源码包以及旧版本升级,如果计划任务运行有问题,需要手工部署Roadrunner服务。

1 为什么引入Roadrunner?

禅道从开源版18.9企业版8.9旗舰版4.9IPD版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 的方式关闭。