首页 > 解决方案 > 芹菜多次执行任务

问题描述

我有一个芹菜任务如下:

@celery_app_site24x7.task(queue='site24x7')
    def createWebsiteMonitoring(**kwargs):
        """ Celery Task to create or update website Moniroting """

        time.sleep(100)
        site24x7Instance = Business_api.thirdpartyFactory.instantiate(
            "site24x7")
        # site24x7Instance.login()
        return site24x7Instance.createWebsiteMonitoring(**kwargs)

问题是我的任务是由多个工人 Fork POOL 运行的:

+++++++

[2019-01-23 05:40:59,674: INFO/ForkPoolWorker-3] 任务 celery_tasks.site24x7.createWebsiteMonitoring[a6eeff3d-fa01-4f2e-9921-849435c9b902] 在 128.61932249739766s: '2798732004'中成功

[2019-01-23 05:49:32,565: INFO/ForkPoolWorker-2] 任务 celery_tasks.site24x7.createWebsiteMonitoring[a6eeff3d-fa01-4f2e-9921-849435c9b902] 成功于 127.42566008213907s: '279853'200038755

+++++++

因此,同一任务正在运行多次。

另一方面,工作人员日志中有一些错误,如下所示:

redis.exceptions.ConnectionError:从套接字读取时出错:('连接被服务器关闭。',)

[2019-01-23 06:58:01,453: WARNING/MainProcess] 恢复 15 条未确认的消息

[2019-01-23 06:58:01,641: INFO/MainProcess] 连接到 redis://46.19.177.13:6379/10

一段时间:

[2019-01-23 05:58:19,791:警告/MainProcess] 消费者:与代理的连接丢失。正在尝试重新建立连接...

我的代码有问题吗?为什么同一个任务要运行两次?

标签: pythonrediscelerycelery-task

解决方案


推荐阅读