• 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是自己创建包的那个名字

     

    获取结果同上一篇文章

  • 相关阅读:
    2.ECMAScript 5.0
    1.Javascript简介
    9.定位
    HDU2032 杨辉三角
    HDU2058 The sum problem
    HDU2091 空心三角形
    HDU1166 敌兵布阵(树状数组模板题)
    HDU2049 不容易系列之(4)——考新郎
    Python网络爬虫与信息提取(三)(正则表达式的基础语法)
    HDU6576 Worker
  • 原文地址:https://www.cnblogs.com/limengda/p/11221177.html
Copyright © 2020-2023  润新知