django项目celery、beat、flower

1.celery 

分布式任务队列,可让任务执行完全脱离主程序,还可以分配到其他主机上运行。
可分为异步和定时任务
    —异步任务
    —定时任务
通过消息传递任务,通过Broker协调client(任务发出者)和worker(任务处理者)
clients发出消息->消息队列->broker将消息分发给worker来处理。
Borker:两种
    —redis
    —rabbitMQ
#django项目配置borker
CELERY_BROKER_URL = "redis://127.0.0.1:6379/0”
#配置celery时区
CELERY_TIMEZONE = TIME_ZONE
# 支持数据库django-db和缓存django-cache存储任务状态及结果
CELERY_RESULT_BACKEND = "django-db”
# 为任务设置超时时间,单位秒。超时即中止,执行下个任务。
CELERY_TASK_TIME_LIMIT = 5
# 任务限流
CELERY_TASK_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}}
# Worker并发数量,一般默认CPU核数,可以不设置
CELERY_WORKER_CONCURRENCY = 2
# 每个worker执行了多少任务就会死掉,默认是无限的
CELERY_WORKER_MAX_TASKS_PER_CHILD = 200
异步任务async task 和 定时任务crontab
worker 执行任务处理单元,获取队列中的任务执行

2.beat

python manage.py celery beat

#启动beat,定时任务给worker分发任务的

3.worker

python manage.py celery worker -c 6

# Linux下测试,启动Celery

Celery -A myproject worker -l info

#启动worker

#worker工作进程,可执行定时与异步任务

4. flower

#flower监控和管理celery(监控celery运行任务的状态)

pip install flower

#启动flower

flower —-port=5555

#参看tasks API

http://127.0.0.1:5555/api/tasks

5. 异步任务调用

    --delay

    —apply_async方法

#delay方法

task_name.delay(args1, args2, kwargs=value_1, kwargs2=value_2)

#apply_async方法,与delay类似,但支持更多参数

task_name.apply_async(args=[arg1, arg2], kwargs={key:value, key:value})

6. 定时任务配置

crontab()      每分

crontab(minute=0, hour=0)       每天午夜

crontab(minute=0, hour='*/3')   能被3整除的小时数,3,6,9点等等

crontab(minute=0,``hour='0,3,6,9,12,15,18,21')  与前面相同,指定小时

crontab(minute='*/15')  每15分钟

crontab(day_of_week='sunday')   星期日每分钟

crontab(minute='*',``hour='*', day_of_week='sun')       同上

crontab(minute=0, hour='*/2,*/3')       可以被2或3整除的小时数,除了 1am, 5am, 7am, 11am, 1pm, 5pm, 7pm, 11pm

crontab(minute=0, hour='*/5')   可以被5整除的小时

crontab(minute=0, hour='*/3,8-17')      8am-5pm之间可以被3整除的小时

crontab(0, 0, day_of_month='2') 每个月的第2天

crontab(0, 0,``day_of_month='2-30/2')   每月的偶数日

crontab(0, 0,``day_of_month='1-7,15-21')        每月的第一和第三周

crontab(0, 0, day_of_month='11',``month_of_year='5')    每年的5月11日

crontab(0, 0,``month_of_year='*/3')     每个季度首个月份每天

7. celery查询

#清除任务队列中所有消息
python manage.py celery purge
#清除某些队列中消息
python manage.py celery purge -Q 队列名
#查看所有激活的任务
python manage.py celery inspect active
#查看计划任务
python manage.py celery inspect scheduled
#列出保留任务列表
python manage.py celery inspect reserved
#列出已撤销任务历史记录
python manage.py celery inspect revoked
#列出激活的节点
python manage.py celery status
#列出worker的统计信息
python manage.py celery inspect stats 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值