Celery简单使用

2019-08-05  本文已影响0人  洛奇lodge

简介

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'

文档:http://docs.celeryproject.org/en/latest/index.html

上一篇 下一篇

猜你喜欢

热点阅读