[group:tornadoes]
programs=ana-8000,ana-8001,ana-8002,ana-8003
[program:ana-8000]
directory = /root/precedents_auto_clean
command = python3 run.py
autorestart = true
restart=true
[program:ana-8001]
directory = /root/precedents_auto_clean1
command = python3 run.py
autorestart = true
restart=true
[program:ana-8002]
directory = /root/precedents_auto_clean2
command = python3 run.py
autorestart = true
restart=true
[program:ana-8003]
directory = /root/precedents_auto_clean3
command = python3 run.py
autorestart = true
restart=true
具体参考 pika python rabbitmq 优先级队列
http_client = tornado.httpclient.HTTPClient()
try:
time_out = 100
#port在各个项目中配置好
url = "http://127.0.0.1:{}/clean?id={}".format(port, id)
req = httpclient.HTTPRequest(url, request_timeout=time_out)
http_client.fetch(req)
except httpclient.HTTPError as e:
if e.message == "Internal Server Error" or e.message == "Timeout":
# 杀掉当前的port进程
command = '''kill -9 $(netstat -nlp | grep :''' + str(
port) + ''' | awk '{print $7}' | awk -F"/" '{ print $1 }')'''
os.system(command)
print("杀死" + e.message)
# 这里sleep 5s 是为了等待 supervisor autorestart
time.sleep(5)
http_client.close()
参考 screen + rc.local 实现开机自启动多个窗口命令
启动 tornado 的部分
/usr/bin/supervisord -c /etc/supervisord.conf
启动消费队列
screen_name="c1"
screen -dmS $screen_name
cmd1="python3 /root/precedents_auto_clean/cron_receive.py";
screen -x -S $screen_name -p 0 -X stuff "$cmd1"
screen -x -S $screen_name -p 0 -X stuff '\n'