zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Map集合
    Collections 工具类
    LinkedList 集合
    List集合
    Iterator迭代器
    Collection集合
    时间日期类
    一看就懂!速写docker 容器数据库备份脚本
    Nginx 配置之HTTPS和WSS那些你不知道的事!
    https 证书认证/颁发/秒级认证无烦恼
  • 原文地址:https://www.cnblogs.com/Treasuremy/p/10396119.html
Copyright © 2011-2022 走看看