程序员python分布式爬虫+srapy

supervisord部署多项目

2020-09-02  本文已影响0人  栗小心

一、先安装supervisor

  1. 安装命令:
    $ pip install supervisor

  2. 如果在沙盒环境下安装不上的话使用:
    $ apt-get install supervisor

注意:如果是用虚拟环境部署的话,建议在虚拟环境里面安装supervisor,如果是在系统环境,建议用系统环境的pip 或者 apt/yum来安装

二、对supervisor进行配置

  1. 生成默认配置文件
    $ echo_supervisord_conf > /etc/supervisord.conf

  2. 在这里你也可以自定义默认配置文件生成的位置,前提是/etc目录下先去创建你的要放置配置文件的目录,假如我们创建了一个叫做supervisor的文件夹,然后将默认配置文件放到这个文件夹里面
    $ echo_supervisord_conf > /etc/supervisor/supervisord.conf

image.png
  1. 我建议这样,用conf文件夹来管理,然后supervisord文件里面是要管理的项目,可以一直加,图片里面有一个celery和web项目

  2. 修改配置文件
    $ vim /etc/supercisor/supervisord.conf
    在最后一行添加files = /etc/supervisor/supervisord.conf.d/.conf
    如:
    [include]
    ;files = /etc/supervisor/conf.d/
    .conf
    files = /etc/supervisor/supervisord.conf.d/*.conf

三、实例

1. 使用supervisor管理celery

安装celery
$ pip install celery
然后进入supervisord文件夹,创建celeryd_worker.conf文件并进行如下配置:
////
[program:celeryworker] # 这个是进程的名字,随意起
command=celery -A bookstore worker -l info # 要运行的命令
directory=/home/fhx/git_test1/bookstore # 运行命令的目录
numprocs=1 #进程数
stdout_logfile=/var/log/supervisor/info.log # 设置info log的路径
stderr_logfile=/var/log/supervisor/err.log # 设置err log的路径
autostart=true #自动启动
autorestart=true #自动重启
startsecs=10 #启动延迟10s
stopwaitsecs = 600 #进程停止等待时间
priority=15 #优先级

2. 使用supervisor管理flower, celery的web项目

安装flower
$ pip install flower
然后进入supervisord文件夹,创建supervisord_celery_flower.ini文件并进行如下配置:
////
[program:pyvip-celery-flower]
command=flower -A celery_tasks.app --port=5555 --basic_auth=pyvip:qwe123 #账号密码
directory=/home/pyvip/DjCe_proj
environment=PATH="/home/pyvip/.virtualenvs/Cel_proj/bin"
stdout_logfile=/home/pyvip/DjCe_proj/logs/celery_flower_info.log
stderr_logfile=/home/pyvip/DjCe_proj/logs/celery_flower_err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=60
priority=996

3. web项目

1.使用supervisor管理web项目
安装web项目依赖包
$ pip install -r pages.txt
然后进入supervisord文件夹,创建supervisord_web_xxx.ini文件并进行如下配置:
////
[program:pyvip-celery-flower]
command=python main.py runserver
directory=/home/pyvip/xxx
environment=PATH="/home/pyvip/.virtualenvs/Cel_proj/bin"
stdout_logfile=/var/log/web_xxx/info.log
stderr_logfile=/var/log/web_xxx/err.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs=60
priority=996

等等,grpc,当然不用这个,docker也是一种选则

四、supervisorctrl操作

  1. 更新新的配置到supervisord
    supervisorctl update
  2. 重新启动配置中的所有程序
    supervisorctl reload
  3. 启动某个进程(program_name=你配置中写的程序名称)
    supervisorctl start program_name
  4. 查看正在守候的进程
    supervisorctl
  5. 停止某一进程 (program_name=你配置中写的程序名称)
    pervisorctl stop program_name
  6. 重启某一进程 (program_name=你配置中写的程序名称)
    supervisorctl restart program_name
  7. 停止全部进程
    supervisorctl stop all
上一篇下一篇

猜你喜欢

热点阅读