使用进程守护supervisor监控管理项目

小白第一次搞线上部署,很多东西都不懂,再次感谢邸同学的提点,学到了一些东西,现在将其记录下来,避免以后重复遇到。

以波士顿房价预测为例,项目名为house_predict

1.使用flask框架开发服务,文件名为:house_serve.py


from flask import Flask
from house_price_predict import house_predict #这个函数包含了所有字段处理和模型调用的代码,#只要传入参数字典就能返回预测结果

app_house = Flask(__name__)

@app.route('/', methods=['get'])
def index():
    return 'Hello Index Page!'

@app.route('/api/house_price', methods=['GET','POST'])
def index_1():
    result = {"msg": "", "error": 0, "data": {}}
    if request.method == 'GET':
        return 'Hello Index Page!'
    else:
        js = request.get_json(force=True) #获取post传入的参数,参数格式                
                                          #{"room_nums":"3"}
        price = house_predict(js)
    if price:
        result = {"msg": "", "error": 0, "data": {price}}
    else:
        result = {"msg": "", "error": 1, "data": {'error info'}}
    return result


app_house.run(host='0.0.0.0', port=12345)

2.使用gunicorn设置并发

2.1安装gunicorn【其他方法可自行百度】:

pip install gunicorn

2.2安装完了就可以设置并发,有两种场景

场景一:直接在服务器上跑并发服务

gunicorn -w 3 -b 127.0.0.1:8080 house_serve:app_house

-w:设置并发时子进程数量 

-b:设置IP地址和端口号

house_serve是flask框架所在的文件名,app_house是flask启动的app名字

如果想查看进程,使用ps -ef|grep gunicorn

关闭进程使用 kill -9 +主进程号

场景二:使用进程守护设置并发

1)安装supervisor:pip install  supervisor

由于使用pip安装,supervisor保存在了 /usr/local/python/bin,为了方便使用,把它扣出来

回到/usr,创建supervisor文件夹,然后:

echo_supervisord_conf > /usr/supervisor/supervisord.ini

2)在服务器上/usr/supervisor/创建文件夹/usr/supervisor/supervisord.d/,在此文件夹中为进程创建配置文件house.conf【使用preload可以输出错误信息】

#项目目录
directory=/home/project/house_predict
command=/home/local/python3/bin/gunicorn -w 3 -b 127.0.0.1:8080 
        house_serve:app_house --preload
autostart=true
autorestart=true
stderr_logfile=/home/project/house_predict/logs/house.err.log
stdout_logfile=/home/project/house_predict/logs/house.out.log

3)回到/usr/supervisor/,用vim打开supervisor.ini

[include]
files = /usr/supervisor/supercisord.d/*.conf

4)启动supervisor

supervisord -c /usr/supervisor/supervisord.ini

5)后台查看进程

ps -ef|grep supervisor

6)关闭进程

kill -9 进程号

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值