zoukankan      html  css  js  c++  java
  • Celery -----异步任务,定时任务,周期任务

    1 什么是Celery?

    Celery是芹菜

    Celery是基于Python实现的模块,用于执行异步定时周期任务的

    其结构的组成是由:

    1 用户任务 app

    2 管道broker用于存储任务 官方推荐redis  rabbitMQ / backend 用于存储任务执行结果的

    3 员工 worker

    2 Celery的简单实例

    s1.py   这是APP

    #首先先下载好celery
    
    from celery import Celery
    import time
    
    #创建一个Celery实例,这就是我们用户的应用app
    my_task = Celery("tasks", broker="redis://127.0.0.1:6379", backend="redis://127.0.0.1:6379")
    
    # 为应用创建任务,func1
    @my_task.task
    def func1(x, y):
        time.sleep(15)
        return x + y
    

    s2.py  这是borker

    from s1 import func1
    
    # 将任务交给Celery的Worker执行
    res = func1.delay(2,4)
    
    #返回任务ID
    print(res.id)
    

    s3.py  这是worker

    from celery.result import AsyncResult
    from s1 import my_task
    
    # 异步获取任务返回值
    async_task = AsyncResult(id="31ec65e8-3995-4ee1-b3a8-1528400afd5a",app=my_task)
    
    # 判断异步任务是否执行成功
    if async_task.successful():
        #获取异步任务的返回值
        result = async_task.get()
        print(result)
    else:
        print("任务还未执行完成")
    
  • 相关阅读:
    P4016 负载平衡问题 网络流
    P3357 最长k可重线段集问题 网络流
    mysql部署
    pve配置
    PVE手册资料
    PVE授权条款
    ovirt磁盘类型(IDE, virtio, virtio-scsi)
    oVirt-postgresql
    ovirt常用后台维护命令
    oVirt部署
  • 原文地址:https://www.cnblogs.com/mlhz/p/10397030.html
Copyright © 2011-2022 走看看