芹菜陷入循环 - 为什么?

问题描述 投票:0回答:1

我是 celery 和 redis 的新手,我试图理解为什么 celery 有时会陷入循环并不断为一项小工作创建任务。请查看日志。不知道这是否正常?

我正在使用:

  • 赫罗库
  • 烧瓶==1.1.2
  • redis==4.5.5
  • 芹菜==4.4.2

__init__.py

    #!venv/bin/python3
    # -*- coding:utf-8 -*-
    import os
    import socket
    import eventlet
    from eventlet.green import ssl
    
    
    def make_celery(app_name=__name__):
        eventlet.monkey_patch(all=False, socket=True)
        ssl.timeout_exc = socket.timeout
    
        redis_url = os.environ.get(
            'REDIS_URL', 'redis://localhost:6379/0')
        celery_broker_url = redis_url
        celery_result_backend = redis_url
        celery = Celery(
            app_name, backend=celery_result_backend, broker=celery_broker_url
        )
        return celery
    try:
        from celery import Celery
        celery = make_celery()
    except ImportError:
        celery = None

celery workers

celery worker --app=mycompany.pptxcelery.celery_worker.celery --autoscale=5,1 --max-tasks-per-child=5 --time-limit=300
flask heroku redis celery
1个回答
0
投票

将我们的解决方案留在这里,以防将来对任何人有帮助。

我们问题的原因是我们使用的是 Redis=4.5.5,celery 明确表示不要使用它,因为它有问题。

升级到5.0.0解决了问题。

© www.soinside.com 2019 - 2024. All rights reserved.