【发布时间】:2014-03-24 20:02:52
【问题描述】:
我有一个任务模块,我们在其中基本上执行以下操作:
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 应用程序:
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/中的教程
但是,当我运行工作程序时,我看到它正在启动,它列出了我的添加任务然后它挂起(从不显示就绪消息)。
【问题讨论】:
-
对于我们这些不知道“芹菜”是什么的人来说,这是一个非常不寻常的问题标题:P
-
使用 DEBUG 日志级别(-l 选项)启动 worker 时的输出是什么?
-
基本上只看到注册的任务列表,然后worker就挂了。
-
@lazyfunctor 运行调试,这是我看到的最后一件事 [2014-04-01 23:04:21,446: DEBUG/MainProcess] |工人:在它挂起之前启动池......
-
我真的不知道 celery 是什么,当我在问题列表中看到这个时,我以为你 100% 疯了。现在我知道那个人使库是。
标签: celery