芹菜工人从未准备好(挂起)烧瓶

时间:2014-03-24 20:02:53

标签: celery

我有一个任务模块,我们基本上执行以下操作:

def make_celery(app):
    celery = Celery(app.import_name, broker=app.config['CELERY_BROKER_URL'])
    celery.conf.update(app.config)
    TaskBase = celery.Task
    class ContextTask(TaskBase):
          abstract = True
              def __call__(self, *args, **kwargs):
                   with app.app_context():
                      return TaskBase.__call__(self, *args, **kwargs)
    celery.Task = ContextTask
    return celery

@celery.task(name="tasks.add")
def add(x, y):
    return x + y

然后创建芹菜应用程序:

celery = tasks.make_celery(app)

app是一个烧瓶应用程序

对于我正在使用的配置:

CELERY_BROKER_URL = str(os.environ.get("CELERY_BROKER_URL", 'redis://localhost:6379/0'))
    CELERY_RESULT_BACKEND = str(os.environ.get("CELERY_RESULT_BACKEND", 'redis://localhost:6379/0'))

我正在关注http://flask.pocoo.org/docs/patterns/celery/

中的教程

然而,当我运行worker时,我看到它正在启动,它列出了我的添加任务然后它挂起(从不显示就绪消息)。

1 个答案:

答案 0 :(得分:1)

我遇到了相同的症状,并且能够将问题缩小到Flask-SocketIO。虽然这可能不直接导致OP的问题,但它可能与具有相同症状的未来访客相关或相关。

我在这里记录了我的问题:https://github.com/miguelgrinberg/Flask-SocketIO/issues/61

此外,没有足够的声誉发布评论。