• 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 .
    

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

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

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

  • 相关阅读:
    2.2 图像分类-线性分类
    2.1 图像分类-K最近邻算法
    2 图像分类-数据驱动方法
    Week6
    R-CNN 原理详解
    1.2 课程介绍-课程后勤
    012_04Thread+Handler实例应用之号码归属地查询
    010_04用户登录(用户名,密码交给服务器并验证)
    010_03HTML源码查看器
    010_02带缓存的图片查看器
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/13966300.html
Copyright © 2020-2023  润新知