简介
Celery是一个简单,灵活,可靠的分布式系统。专注于实时处理,同时还支持任务调度。是相当于生产者和消费者模式。中间有一个消息队列。架构体系如下图:Celery消息队列
消息队列选择一般选择以下两种
1、redis
这是比较轻量级的
2、rabbitmq
这是比较重量级的
Celery生产者(任务调度)
常用调用方式
# 1、最简单方式调用
task.delay(arg1, arg2, kwarg1='x', kwarg2='y')
# 2、支持额外的执行选项
task.apply_async(args=[arg1, arg2], kwargs={'kwarg1': 'x', 'kwarg2': 'y'}, link=task.s(arg3))
Celery消费者(程序运行)
# celery -A 任务文件名 woker --loglevel=日志等级
celery -A tasks worker --loglevel=info
Celery一个demo
1、目录划分
2、代码结构
main.py
from celery import Celery
# 创建一个celery对象
celery_app = Celery("celery_tasks")
# 加载配置文件
celery_app.config_from_object('celery_tasks.config')
# 让celery自动发现任务
celery_app.autodiscover_tasks(['celery_tasks.test'])
test/tasks.py
from celery_tasks.main import celery_app
@celery_app.task()
def send_sms_code():
print('你好。。。')
config.py
# 指定中间人broker地址(例子选用redis)
broker_url = 'redis://127.0.0.1:6379/0'
网友评论