superviosr.conf
[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
【tornado 消费队列并配合 superviosr 优雅重启】启动消费队列
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'
推荐阅读
- 推荐系统论文进阶|CTR预估 论文精读(十一)--Deep Interest Evolution Network(DIEN)
- Python专栏|数据分析的常规流程
- Python|Win10下 Python开发环境搭建(PyCharm + Anaconda) && 环境变量配置 && 常用工具安装配置
- Python绘制小红花
- Pytorch学习|sklearn-SVM 模型保存、交叉验证与网格搜索
- OpenCV|OpenCV-Python实战(18)——深度学习简介与入门示例
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- 爬虫|若想拿下爬虫大单,怎能不会逆向爬虫,价值过万的逆向爬虫教程限时分享
- 分布式|《Python3网络爬虫开发实战(第二版)》内容介绍
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)