celery任务

队列监控地址


brick----pydata----py_statistics   #写方法
app_djcelery----tasks.py----b_store_abnormal_picking_timing    #调方法
app_djcelery----tasks_routes.py----PY_STORE_STATISTICS    #配置队列
#若是新加的队列,需要在setting----CELERY_QUEUE中配置
Queue(name='py_store_statistics', exchange=Exchange('py_store_statistics'), routing_key='py_store_statistics'), #仓库每月同步数据


若新增队列


1. 代码合到SVN,71,245

2.  先配置好数据库表:djcelery_periodictask,具体查看数据库已存在队列

3.  增加新的队列由开发人员配置好队列相关信息,生成队列的语句,写到/data/djangostack-1.9.7/ start.sh脚本文件中,具体参照已存在队列

4   重启45服务器  106.14.125.45
      先杀存在的beat进程
      ps -ef | grep beat
      Kill -9 进程号:如
      Kill -9 10537
      查看是否杀死
      ps -ef | grep beat
      如杀死则执行语句,重启
      nohup python manage.py celery beat --loglevel=info &
      执行后检查是否已经启动
      ps -ef | grep beat
      启动成功后方可离开
      
然后到71,245 中直接启动队列
Ps:注意和代码时要先合到celery的svn(svn://192.168.101.60/hq/celery)
注意重启队列或者45时一定要确认,完全启动成功才可离开

在其他队列中增加任务

连接 71,245
cd /data/djangostack-1.9.7/
cat start.sh

找到对应的队列,复制队列语句,如  (Project下运行)
nohup python manage.py celery worker -c 1  -n real_time_worker_71 -Q real_time --loglevel=error >/dev/null &

#重启队列前先杀存在的进程
#找到队列的进程号:
ps -ef | grep 队列名       例如:ps -ef | grep real_time

#kill杀死进程
kill -9 PID号        例如:kill -9 17662

#用刚才复制的启动队列,在Project下执行
nohup python manage.py celery worker -c 1  -n real_time_worker_71 -Q real_time --loglevel=error >/dev/null &

界面配置部分:
代码修改提交之后,需要在djcelery_periodictask表中添加任务,界面入口在:
文档与系统配置/配置/Celery任务,点击右上角”增加celery定时任务配置表”进入配置页面。
    任务名:填写tasks.py中定义的任务名
    任务路径:一般是按照”app_djcelery.tasks.任务名”的规则填写,例如”app_djcelery.tasks.show_wish_pb”,其他特殊情况另行说明
    启用状态:停用/启用
    任务类型:分为4种,分别对应:1-定时任务,2-实时任务,3-函数计算,4-Crantab
    Args与Kwargs:按照任务定义的要求视具体情况填写

    定时执行与时间间隔执行:根据任务类型二选一填写(具体对应的规则见下图)
    Queue、Exchange、Routing_key:Queue和Routing与tasks_routes.py中的配置一致,Exchange配一样的值
    描述:celery任务具体的描述

 
#查看是否启动
ps -aux | grep 队列名_服务器尾号
ps -ef | grep 队列名_服务器尾号
#kill进程
kill -9 PID号
#启动任务:在Project下运行 需要manage.py文件
nohup python manage.py celery worker -c 1 -n 队列名_服务器尾号  -Q  队列名 --loglevel=error >/dev/null&

#shell测试
使用 python shell
cd /data/djangostack-1.9.7/apps/django/django_projects/Project
python manage.py shell

>>>from app_djcelery.tasks import b_store_abnormal_picking_timing
>>>b_store_abnormal_picking_timing()

你可能感兴趣的:(celery任务)