linux中配置celery定时任务

1.参考博客

http://yshblog.com/blog/165

https://blog.csdn.net/u012887259/article/details/102539581?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-11-102539581.nonecase&utm_term=celery%20linux%20%E5%90%8E%E5%8F%B0%E8%BF%90%E8%A1%8C

https://blog.csdn.net/kkevinyang/article/details/80539940

2.具体操作步骤

1.下载模块

pip3 install supervisor

2.查看版本

pip3 list | grep su

3.建立软连接(可不用操作)

3.1这时候使用pip的安装方式其实并没有设置好supervisor的环境变量,还需要查看一下supervisor安装后的二进制可执行文件在哪里。

搜索在 / 目录下,前后模糊查询名称为 supervi 的文件,如下:

find / -name "*supervi*" -ls | grep python3 | grep bin

 

 

3.2将supervisorctlecho_supervisord_conf 和 supervisord 添加软链到执行目录下/usr/bin

ln -s /usr/local/python3/bin/echo_supervisord_conf /usr/bin/echo_supervisord_conf
ln -s /usr/local/python3/bin/supervisord /usr/bin/supervisord
ln -s /usr/local/python3/bin/supervisorctl /usr/bin/supervisorctl

实际示例

4.配置启动文件

4.1进入django项目(如大luffy)

 

4.2配置文件编辑

1.我们可以使用echo_supervisord_conf命令得到supervisor配置模板,打开终端执行如下Linux shell命令:
echo_supervisord_conf > supervisord.conf

2.该命令输出文件到当前目录下(当然,你也可以指定绝对路径到具体位置),文件名为supervisord.conf。
再使用vim命令打开该文件并编辑:
vim supervisord.conf

注意编辑文件时里面的内容不要清空

[program:celery.worker]
;指定运行目录
directory=/home/project/airapi
;运行目录下执行命令(注意要把虚拟环境带上)
command=/home/dev/.virtualenvs/aqivir/bin/celery worker -A celery_task -l info

;启动设置
numprocs=1          ;进程数
autostart=true      ;当supervisor启动时,程序将会自动启动
autorestart=true    ;自动重启

;停止信号,默认TERM
;中断:INT (类似于Ctrl+C)(kill -INT pid),退出后会将写文件或日志(推荐)
;终止:TERM (kill -TERM pid)
;挂起:HUP (kill -HUP pid),注意与Ctrl+Z/kill -stop pid不同
;从容停止:QUIT (kill -QUIT pid)
stopsignal=INT
;输出日志
stdout_logfile=/home/project/airapi/celery_task/celery_worker.log
stdout_logfile_maxbytes=10MB  ;默认最大50M
stdout_logfile_backups=10     ;日志文件备份数,默认为10

;错误日志
redirect_stderr=false         ;为true表示禁止监听错误
stderr_logfile=/home/project/airapi/celery_task/celery_worker.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=10

[program:celery.beat]
;指定运行目录
directory=/home/project/airapi
;运行目录下执行命令(虚拟环境)
command=/home/dev/.virtualenvs/aqivir/bin/celery beat -A celery_task -l info

;启动设置
numprocs=1          ;进程数
autostart=true      ;当supervisor启动时,程序将会自动启动
autorestart=true    ;自动重启

;停止信号
stopsignal=INT

5.启动(注意路径)

supervisord -c supervisord.conf

如果没有报错就没有问题

6.其他命令

1.关闭
supervisorctl -c supervisord.conf shutdown
2.重启
supervisorctl -c supervisord.conf reload

 

posted @ 2020-09-03 17:43  心慌得初夏  阅读(615)  评论(0编辑  收藏  举报
levels of contents