栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

tornado celery config文件

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

tornado celery config文件

文章目录
  • tornado+celery的简单使用详解
    • 首先是celeryconfig文件的编写
      • celeryconfig.py
      • task.py

tornado+celery的简单使用详解

celery是实现一个简单,灵活可靠的分布式任务队列系统的好选择

首先是celeryconfig文件的编写 celeryconfig.py
#coding=utf-8
from kombu import Queue

CELERY_DEFAULT_EXCHANGE_TYPE = 'direct'

# 时区
CELERY_TIMEZONE = 'Asia/Shanghai'0
# 启动时区
CELERY_ENABLE_UTC = True

# 默认队列
CELERY_DEFAULT_QUEUE = 'mytask0'
# 默认队列的Key
CELERY_DEFAULT_ROUTING_KEY = 'task.mytask0'

# 创建队列,执行异步任务
CELERY_QUEUES = (
  Queue('mytask',  routing_key='task.mytask'),
)

# 创建执行路由
CELERY_ROUTES = {
  'task.mytask': {
    'queue': 'mytask',
    'routing_key': 'task.mytask',
  },
}

# 定时任务
CELERYBEAT_SCHEDULE = {
    'task.mytask': {
        'task': 'task.mytask'',
        'schedule': crontab(minute="1"),
    },
}
task.py
#coding=utf-8
from celery import Celery
from celery.bin import worker as celery_worker
import celeryconfig

broker = 'amqp://'
backend = 'amqp'
app = Celery('task', backend=backend, broker=broker)
app.config_from_object(celeryconfig)

@app.task
def mytask(task_name):
  print "task:%s" %task_name
  return task_name 

def worker_start():
  worker = celery_worker.worker(app=app)
  worker.run(broker=broker, concurrency=4,
        traceback=False, loglevel='INFO')

if __name__ == "__main__":
  worker_start()

执行python task.py将会启动worker

tornado调用celery将阻塞任务变为非阻塞

这会使用到tcelery模块,即tornado下的一个非阻塞的broker实现

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/994728.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号