如何在延迟的任务中执行apply_async任务



我想在延迟的任务中执行apply_aysnc任务。但是我收到一个错误"函数"对象没有属性"apply_async"。

tasks.py

from celery import task

def Test(func, delay_seconds):
TaskA.apply_async((func, delay_seconds), countdown=1)
@task
def TaskA(func, delay_seconds):
result = xxx
if result:
func.apply_async(countdown=delay_seconds)
def TaskB():
xxx

Test.apply_async((TaskB, 600,), countdown=60)

我发现芹菜可以执行"测试"功能。然后我想在任务 A 中的结果为 True 时执行 func,但当我尝试"apply_aysnc"任务 B 时它会引发异常。如何将 func 作为"任务"对象?还有其他方法可以做到吗?

我自己解决了这个问题

task(func).apply_async(countdown=delay_seconds)

其中 task(( 将返回一个芹菜代理,而不是

func.apply_async(countdown=delay_seconds)

相关内容

  • 没有找到相关文章

最新更新