0

正如主题所说,过去重试直到达到定义的“max_retries”计数的任务现在有时会在随机次数后停止这样做:/。有时他们会在几百次之后停止重试,有时只是几次之后。

我注意到的是,如果我重新启动“芹菜节拍”过程 - 几分钟后,一些“相当”几个小时的任务会重新开始重试。

无法准确确定它何时开始发生,但可能是在升级 Celery、RabbitMQ 或 Django 之后。

有人知道为什么会这样吗?

我在跑:

Django: 1.7.3
RabbitMQ: 3.4.2
celery:3.1.17
kombu:3.0.24
billiard:3.3.0.19
python:2.7.3
py-amqp:1.4.6

芹菜设置:

CELERY_ACKS_LATE            = True
CELERY_SEND_EVENTS          = True
CELERY_TRACK_STARTED        = True
CELERY_DISABLE_RATE_LIMITS  = True
CELERYD_PREFETCH_MULTIPLIER = 1
CELERY_SEND_TASK_SENT_EVENT = True

任务代码看起来不错。像这样:

class ABCTask(AbortableTask):
    ignore_result = False
    max_retries = 288*5

    def run(self):
        try:
            [...]
        except NoAvailableDevices as e:
            try:
                self.retry(exc=e)
            except MaxRetriesExceededError, e:
                [...]

谢谢,劳里斯

4

0 回答 0