Celery-Task参数方法

@celery.task(bind=True, name='name')
def function_name():
    pass

# task方法参数
name       : 可以显式指定任务的名字;默认是模块的命名空间中本函数的名字。
serializer : 指定本任务的序列化的方法;
bind       : 一个bool值,设置是否绑定一个task的实例,如果绑定,task实例会作为参数传递到任务方法中,可以访问task实例的所有的属性,即前面反序列化中那些属性,使用self.request访问相关的属性
base       : 定义任务的基类,可以以此来定义回调函数,默认是Task类,我们也可以定义自己的Task类
default_retry_delay : 设置该任务重试的延迟时间,当任务执行失败后,会自动重试,单位是秒,默认3分钟;
autoretry_for       : 设置在特定异常时重试任务,默认False即不重试;
retry_backoff       : 默认False,设置重试时的延迟时间间隔策略;
retry_backoff_max   : 设置最大延迟重试时间,默认10分钟,如果失败则不再重试;
retry_jitter        : 默认True,即引入抖动,避免重试任务集中执行;


# task常用属性
Task.name     : 任务名称;
Task.request  : 当前任务的信息;
Task.max_retries   : 设置重试的最大次数
Task.throws        : 预期错误类的可选元组,不应被视为实际错误,而是结果失败;
Task.rate_limit    : 设置此任务类型的速率限制
Task.time_limit    : 此任务的硬限时(以秒为单位)。
Task.ignore_result : 不存储任务状态。默认False;
Task.store_errors_even_if_ignored : 如果True,即使任务配置为忽略结果,也会存储错误。
Task.serializer    : 标识要使用的默认序列化方法的字符串。
Task.compression   : 标识要使用的默认压缩方案的字符串。默认为task_compression设置。
Task.backend       : 指定该任务的结果存储后端用于此任务。
Task.acks_late     : 如果设置True为此任务的消息将在任务执行后确认 ,而不是在执行任务之前(默认行为),即默认任务执行之前就会发送确认;
Task.track_started : 如果True任务在工作人员执行任务时将其状态报告为“已启动”。默认是False# 当bind=True时,add函数第一个参数是self,指的是task实例
@task(bind=True)  # 第一个参数是self,使用self.request访问相关的属性
def add(self, x, y):
    try:
        logger.info(self.request.id)
    except:
        self.retry() # 当任务失败则进行重试,也可以通过max_retries属性来指定最大重试次数


posted @   Lin-Grocery  阅读(688)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示