celery发送任务(apply、apply_async、delay)分析

apply:官方注释:Execute this task locally, by blocking until the task returns(通过阻塞直到任务返回,在本地执行此任务)即同步任务,不走celery worker。apply_async:def apply_async(self, args=None, kwargs=None, task_id=None, producer=None, link=None, link_error=None, ..
摘要由CSDN通过智能技术生成
  • apply:

    官方注释:Execute this task locally, by blocking until the task returns(通过阻塞直到任务返回,在本地执行此任务)
    即同步任务,不走celery worker。

  • apply_async:

def apply_async(self, args=None, kwargs=None, task_id=None, producer=None,
                link=None, link_error=None, shadow=None, **options):
    """Apply tasks asynchronously by sending a message."""
    if self.typing:
        try:
            check_arguments = self.__header__
        except AttributeError:  # pragma: no cover
            pass
        else:
            check_arguments(*(args or ()), **(kwargs or {}))

    app = self._get_app()
    if app.conf.task_always_eager:   #  如果celery conf设置了task_always_eager=True,则走apply()同步任务
        with app.producer_or_acquire(producer) as eager_producer:
            serializer = options.get(
  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Celeryapply_async()方法是用于处理异步任务的常见API。通过调用apply_async()方法,可以将任务丢给Celery,让一个进程去执行任务。这个方法的逻辑是创建一个Celery任务,然后在任务执行之前再次调用apply_async()方法,指定下次执行的定时时间。这样就会产生一个定时的Celery worker。任务执行时,会处理相应的业务逻辑。当达到定时时间时,定时的Celery worker开始执行,然后循环回到第一步。\[1\]\[3\] 然而,有时候在使用apply_async()接口时可能会出现问题。比如,任务可能会丢失,就像将一个石头丢进了大海里一样,消失了。这可能是因为在使用异步调用时出现了故障,而同步调用则没有问题。对于这种情况,需要仔细检查代码和配置,确保正确地使用apply_async()方法,并且没有其他错误导致任务丢失。\[2\] #### 引用[.reference_title] - *1* [celery apply_async定时任务重复执行问题](https://blog.csdn.net/qq_21918903/article/details/126663161)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Celeryapply_async()无法正常工作的解决方案之一](https://blog.csdn.net/inter_peng/article/details/104706810)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值