Celery多任务结构

视图结构

pro_cel
    ├── celery_task# celery相关文件夹
    │   ├── celery.py   # celery连接和配置相关文件,必须叫这个名字
    │   └── tasks1.py    #  所有任务函数,如用户相关
    │    └── tasks2.py    #  所有任务函数,如订单相关
    ├── check_result.py # 检查结果
    └── send_task.py    # 触发任务

celery.py 配置信息

 
 
# 必须叫celery,生成celery对象
from celery import Celery

# 下面是配置信息,这里使用redis为列

# 处理结果
backend = 'redis://:lmdxxxx@139.xxx.xxx.42:6380/7'
# 中间人
broker = 'redis://:lmdxxxx@139.xxx.xxx.42:6380/8'
APP = Celery('test', broker=broker, backend=backend,
             # 包含一下俩个任务文件,去相应的py文件中找任务,对多个任务做分类
             include=[
                 'celery_task.order_task',
                 'celery_task.user_task',
             ])

celery配置中 include是多任务的时候celery会自己去里面找任务去执行

order_task.py 订单相关的任务

# 订单相关
from celery_task.celery import APP


@APP.task
def order_add(x, y):
    import time
    time.sleep(1)
    return '订单相关的:%s' % (x + y)

 user_task.py 用户相关的任务

# 用户相关
from celery_task.celery import APP


@APP.task
def user_add(x, y):
    import time
    time.sleep(2)
    return '用户相关的:%s' % (x + y)

 add_task.py 提交任务

from celery_task.order_task import order_add
from celery_task.user_task import user_add

order = order_add.delay(5, 6)
user = user_add.delay(10, 0)
print(order)
print(user)

 

启动worker

linux命令:celery worker -A celery_task -l info

win命令:celery worker -A celery_task -l info -P eventlet

多任务直接启动 celery_task 这个包就行了,因为里面必须固定写celery

注:celery_task是自己创建包的那个名字

 

获取结果同上一篇文章

 

转载于:https://www.cnblogs.com/limengda/p/11221177.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL是一种关系型数据库管理系统,它使用结构化查询语言(SQL)进行数据管理。MySQL具有高性能、可靠性和可扩展性,被广泛应用于各种Web应用程序和企业级应用程序中。 Celery是一个基于Python的分布式任务队列框架,它可以用于异步处理、定时任务和任务调度等场景。Celery提供了一种简单而灵活的方式来将任务分发到多个工作节点上执行,并且支持多种消息中间件来实现任务的传递和调度。 在Celery中,消息中间件用于在任务生产者和消费者之间传递任务消息。MySQL可以作为Celery的消息中间件之一,用于存储和传递任务消息。当任务生产者将任务发送到Celery队列时,任务消息会被存储在MySQL数据库中。然后,消费者从数据库中获取任务消息并执行相应的任务。 使用MySQL作为Celery的消息中间件有以下几个优点: 1. 可靠性:MySQL具有良好的数据持久性和可靠性,可以确保任务消息不会丢失。 2. 可扩展性:MySQL支持水平扩展和集群部署,可以满足高并发任务处理的需求。 3. 数据管理:MySQL提供了强大的数据管理功能,可以对任务消息进行查询、统计和监控。 需要注意的是,使用MySQL作为Celery的消息中间件可能会对性能产生一定的影响,因为数据库操作通常比其他消息中间件的操作更耗时。因此,在选择消息中间件时,需要根据具体的应用场景和需求进行权衡和选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值