无法启动工人用Flask运行芹菜

时间:2017-09-18 20:17:32

标签: flask celery celery-task

我按照以下url中给出的示例来使用Flask运行芹菜:

http://flask.pocoo.org/docs/0.12/patterns/celery/

我一字不漏地遵循了一切。唯一的区别是,我的make_celery函数是在以下层次结构下创建的:

package1|
        |------CeleryObjCreator.py
        |  

CeleryObjectCraetor.py在CeleryObjectCreatorClass下有make_celery函数,如下所示:

from celery import Celery

class CeleryObjectHelper:
    def make_celery(self, app):
        celery = Celery(app.import_name, backend=app.config['CELERY_RESULT_BACKEND'],
                        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 -A your_application.celery worker

就我而言,我正在使用<>对于不起作用的your_application字符串,它会出现以下错误:

  

ImportError:没有名为" package1.celery'

的模块

所以我不确定your_application字符串的值应该是什么来启动芹菜工作者。

修改

根据Nour Chawich的建议,我尝试从命令行运行Flask应用程序。我的服务器确实成功了。 此外,由于app是我的项目结构中app.py所在的目录,在app.py代码中,我用flask_app = Flask(name)替换app = Flask(name)以分隔出变量名称 但是当我尝试使用命令

启动芹菜工人时
celery -A app.celery -loglevel=info

它无法识别我的代码中的以下导入

import app.myPackage as myPackage

它会抛出以下错误

ImportError: No module named 'app'

所以我真的不确定这里发生了什么。任何想法?

0 个答案:

没有答案