小编mpd*_*rty的帖子

使用Jenkins自动启动多个celery守护进程

我有一个Ubuntu服务器,上面运行着5个不同的django站点.这些用于测试,因此每个开发人员都有自己的站点和数据库以及一个集成代码站点,只有在功能准备就绪时才会更新.每当更改被推送到存储库时,Jenkins用于从Github更新每个站点.

我们最近将Django-Celery添加到我们的依赖项中,以便我们可以异步地对上传的文件进行一些处理.每个站点现在都需要自己的芹菜队列,该队列使用该特定站点的正确设置(数据库,上载目录等).

我希望每当代码更改时重启每个芹菜服务器,以便它可以自动获得最新的更改.我们的git存储库中有一个更新脚本,Jenkins会在更新站点时运行.当我尝试在此脚本中启动celery守护程序时,celery启动,但在脚本结束时再次关闭.

这是我的更新脚本的副本:

#!/bin/bash

# Delete all *.pyc files
find $WORKSPACE -name '*.pyc' | xargs rm

# Update the database
[…]

# Run automated tests
python code/manage.py test <project> --noinput
TEST_STATUS=$?

# Refresh this repo's public website
touch $WORKSPACE/apache/wsgi.py

# Restart our celery daemon for this installation
/sbin/start-stop-daemon --stop -p $WORKSPACE/../celery.pid
echo 'Starting Celery Server'

# When run on the command line, this line starts a daemon just fine
/sbin/start-stop-daemon --start --background --quiet --oknodo -p $WORKSPACE/../celery.pid -m --exec $WORKSPACE/code/manage.py …
Run Code Online (Sandbox Code Playgroud)

deployment django celery jenkins start-stop-daemon

4
推荐指数
1
解决办法
2089
查看次数

标签 统计

celery ×1

deployment ×1

django ×1

jenkins ×1

start-stop-daemon ×1