celery命令参数详解及在django中的用法

celery 应用场景

  • 异步任务:异步执行比较耗时的任务,比如发送短信/邮件、消息推送、音视频处理,文件导入导出等等
  • 定时任务:定时执行某件事情,比如每天数据统计
    在这里插入图片描述
  • 消息中间件(broker):Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括, Redis等等
  • 任务执行单元(workers): Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中(本质,一个work就是一个进程)。
  • 任务结果存储(backend):Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括 redis
  • 任务调度器(beat):Beat进程会读取配置文件的内容,周期性地将配置中到期需要执行的任务发送给任务队列
    -生产者 (producer):调用了Celery提供的API、函数或者装饰器而产生任务并交给任务队列处理的都是任务生产者。

win中启动work
pip install eventlet
celery -A proj worker -l INFO -P eventlet
linux启动work
celery -A proj worker -l DEBUG -f ./log/all.log -Q quene -n hostname

启动beat的命令(负责每隔几秒钟,向任务队列中提交任务)
celery -A proj beat -l INFO -f ./log/all.log

常用参数

-A/--app	            要使用的应用程序实例
-n/--hostname	        设置自定义主机名
-Q/--queues	            指定一个消息队列,该进程只接受此队列的任务
--max-tasks-per-child	配置工作单元子进程在被一个新进程取代之前可以执行的最大任务数量
--max-memory-per-child	设置工作单元子进程被替换之前可以使用的最大内存
-l/--loglevel	        定义打印log的等级 DEBUG, INFO, WARNING, ERROR, CRITICAL, FATAL
--autoscale	            池的进程的最大数量和最小数量
-c/--concurrency	    同时处理任务的工作进程数量,默认值是系统上可用的cpu数量
-B/--beat	            定义运行celery打周期任务调度程序
-h/--help	

celery在django web项目中的用法

在项目中的配置(settings.py)

BROKER_URL: 指定以什么方式作为消息代理
CELERY_RESULT_BACKEND: 结果存储方式
CELERY_TASK_SERIALIZER: 任务序列化和反序列化方案 如:'json'
CELERY_RESULT_SERIALIZER: 结果序列化
CELERY_ACCEPT_CONTENT: 读取数据可接受的 数据格式 如:['json']
CELERY_TIMEZONE: 指定时区  如:'Asia/Shanghai'
CELERY_ENABLE_UTC: 是否启动时区设置,默认值是True

from celery.schedules import crontab
from datetime import timedelta

CELERY_BEAT_SCHEDULE = {
   
    'task_name':<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值