• Celery-------异步任务


    1.什么是Celery?
      Celery 是基于Python实现的模块, 用于执行异步定时周期任务的
      其结构的组成是由
          1.用户任务 app
          2.管道 broker 用于存储任务 官方推荐 redis rabbitMQ  / backend 用于存储任务执行结果的
          3.员工 worker

    2.如何使用Celery?

       首先创建以下三个文件

    from celery import Celery
    import time
    
    # 模拟用户App
    my_task = Celery("task", broker="redis://127.0.0.1:6379", backend="redis://127.0.0.1:6379")
    
    
    # 向应用中添加任务
    @my_task.task
    def my_func1(a, b):
        time.sleep(10)
        return f"my_func1 return{a}{b}"
    
    
    @my_task.task
    def my_func2():
        return "my_func2"
    
    
    @my_task.task
    def my_func3():
        return "my_func3"
    c1
    from c1 import my_func1
    
    # 将任务交给Worker执行
    res = my_func1.delay(2, 3)
    print(res)
    c2
    from celery.result import AsyncResult
    from c1 import my_task
    
    
    # 拿出ID看任务执行情况
    async_task = AsyncResult(id='bd5bd9b0-7510-406c-8340-eb3ddb74af5b', app=my_task)
    # result = async_task.get()
    # print(result)
    
    # 判断异步任务是否执行成功
    if async_task.successful():
        #获取异步任务的返回值
        result = async_task.get()
        print(result)
    else:
        print("任务还未执行完成")
    c3

       下一步启动Worker

       Linux  ----  celery worker -A s1 -l INFO

       Windows ----  - celery worker -A s1 -l INFO -P eventlet

  • 相关阅读:
    [C#][控件]WebBrowser 使用范例
    [java]经验集
    [html][easyui]DataGrid 绑定
    [转]jQuery 读取 xml
    [转][html]大文件下载
    [转][javascript]判断传入参数
    [html][javascript] Cookie
    [bat]批处理删默认共享和清理垃圾
    [转]JavaScript RegExp 对象参考手册
    5个编程问题(1小时解决)
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/10396119.html
Copyright © 2020-2023  润新知