【问题标题】:Is there a way to receive a notification as soon as a certain task with a certain task id is successful or fails using Celery for Python?有没有办法在使用 Celery for Python 完成具有特定任务 ID 的特定任务成功或失败时立即接收通知?
【发布时间】:2017-09-02 14:08:08
【问题描述】:

我想知道是否有一种方法可以在使用 python celery 后立即监控任务是否完成或失败。我想根据某个任务的结果触发一个事件。

【问题讨论】:

    标签: python flask celery celery-task


    【解决方案1】:

    您可以将任务作为 celery @shared_task 运行,其中包含 try except 块:

    @shared_task
    def my_task(input1, input2, ...):
        Setting up...
        try:
            Do stuff
            fire_success_event() <- Your success event
        except Exception:
            The above stuff failed
            fire_fail_event() <- your fail event
            return 1 <- fail
        return 0 <- success
    

    祝你好运:)

    【讨论】:

    • 谢谢,但我想知道任务my_task 是成功还是失败。更准确地说,我希望收到一种通知,就像有一个监听器,它只是在等待任务成功或失败,然后采取相应的行动。
    • 然后使用 return 语句代替事件(通常为 0:成功,1:失败)。我将编辑我的答案
    • 当我这样做时,我似乎一直失败,因为任务可能在我检查它返回的点时挂起。查看我之前的评论
    • 这就是为什么我最初建议从 celery 任务中触发你的事件!
    • 好朋友 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多