zoukankan      html  css  js  c++  java
  • celery中异步延迟执行任务apply_anysc的用法

    描述

    首先说下异步任务执行delay()和apply_anysc()两者区别,其实两者都是执行异步任务的方法,delay是apply_anysc的简写。所以delay中传递的参数会比apply_anysc能传的参数少一些。那么延迟执行异步任务的关键点就在于传递的参数中。
    

    例子

    from datetime import datetime,timedelta
    eta = datetime.utcnow() + timedelta(seconds=10)
    t2 = test_task.apply_anysc(args=(10,20), eta=eta)
    
    分析:
    test_task:表示你要执行异步任务的那个被装饰器装饰的函数
    apply_anysc:这个就是执行异步延迟任务必须要调用的方法!!
    args : 这个是传递给那个被装饰器装饰的函数参数,如果有参数那么就需要写,没有那就不用写
    eta:这个是关键。意思是延迟10秒执行。可在后台查看是否是延迟十秒才真正执行
    

    一些参数说明

    countdown : 等待一段时间再执行.
    test_task.apply_async((2,3), countdown=5)
    
    eta : 定义任务的开始时间.这里的时间是UTC时间,这里有坑
    test_task.apply_async((2,3), eta=now+tiedelta(second=10))
    
    expires : 设置超时时间.
    test_task.apply_async((2,3), expires=60)
    
    retry : 定时如果任务失败后, 是否重试.
    test_task.apply_async((2,3), retry=False)
    
    retry_policy : 重试策略.
      max_retries : 最大重试次数, 默认为 3 次.
      interval_start : 重试等待的时间间隔秒数, 默认为 0 , 表示直接重试不等待.
      interval_step : 每次重试让重试间隔增加的秒数, 可以是数字或浮点数, 默认为 0.2
      interval_max : 重试间隔最大的秒数, 即 通过 interval_step 增大到多少秒之后, 就不在增加了, 可以是数字或者浮点数, 默认为 0.2 .
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    css
    AcWing 145 超市 (贪心)
    AcWing 144 最长异或值路径 (Trie)
    AcWing 143 最大异或对 (Trie)
    AcWing 142 前缀统计 (Trie)
    AcWing 141 周期 (KMP)
    AcWing 139 回文子串的最大长度 (哈希+二分 / Manacher)
    AcWing 136 邻值查找 (set)
    AcWing 133 蚯蚓 (队列)
    AcWing 131 直方图中最大的矩形 (单调栈)
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/13966300.html
Copyright © 2011-2022 走看看