gpt4 book ai didi

python - 在 Django 中中止 Celery 中正在运行的任务

转载 作者:太空狗 更新时间:2023-10-29 22:10:06 28 4
gpt4 key购买 nike

我希望能够中止从 Celery 队列(使用 rabbitMQ)运行的任务。我调用任务使用

task_id = AsyncBoot.apply_async(args=[name], name=name, connect_timeout=3)

其中 AsyncBoot 是定义的任务。

我可以获得任务 ID(假设这是 apply_async 返回的长字符串)并将其存储在数据库中,但我不确定如何调用中止方法。我看到了如何使用 Abortable 任务类使方法可中止,但是如果我只有任务 ID 字符串,我该如何在任务上调用 .abort()?谢谢。

最佳答案

apply_async 返回一个 AsyncResult 实例,或者在本例中返回一个 AbortableAsyncResult。保存 task_id 并稍后使用它来实例化一个新的 AbortableAsyncResult,如果您不使用 default_backend,请确保提供后端可选参数.

abortable_async_result = AsyncBoot.apply_async(args=[name], name=name, connect_timeout=3)
myTaskId = abortable_async_result.task_id

后来:

abortable_async_result = AbortableAsyncResult(myTaskId)
abortable_async_result.abort()

关于python - 在 Django 中中止 Celery 中正在运行的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3576512/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com