芹菜工人没有开始:"Module 'proj' has no attribute 'celery'"
Celery worker not starting: "Module 'proj' has no attribute 'celery'"
我正在使用 Django、Celery 和 RabbitMQ。当我从顶级目录 运行 celery -A FlakeFinder worker -l INFO
时,出现错误:
Usage: celery [OPTIONS] COMMAND [ARGS]...
Error: Invalid value for '-A' / '--app':
Unable to load celery application.
Module 'flakefinder' has no attribute 'celery'
如果我改为 运行 celery -A FlakeFinder.celeryApp worker -l INFO
,我会收到紫色文本错误:
ModuleNotFoundError: No module named 'celery.backends.amqp'
我不太确定从这里到哪里去。我怎样才能得到芹菜工人 运行ning?
我的文件夹结构如下所示:
. (FlakeFinder)
├── FlakeFinder
│ ├── __init__.py
│ ├── asgi.py
│ ├── celeryApp.py
│ ├── secrets.py
│ ├── settings.py
│ ├── tasks.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
├── license.txt
├── manage.py
├── scraping
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── scraper.py
│ ├── tests.py
│ └── views.py
celeryApp.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from celery.schedules import crontab # scheduler
# default django settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'FlakeFinder.settings')
app = Celery('FlakeFinder')
app.conf.timezone = 'UTC'
app.config_from_object("django.conf:settings", namespace="CELERY")
app.autodiscover_tasks()
app.conf.beat_schedule = {
# executes every 1 minute
'scraping-task-three-hr': {
'task': 'scraping.tasks',
'schedule': crontab()
}
}
tasks.py
from scraping.scraper import *
from celeryApp import app
@app.task
def update_snow_locs():
...
错误似乎很清楚。
from celery import Celery
from celery import task
celery = Celery('tasks', broker='amqp://guest@localhost//') #!
import os
os.environ[ 'DJANGO_SETTINGS_MODULE' ] = "proj.settings"
@task()
def add_photos_task( lad_id ):
...
这是我在网上找到的解释 - “忘记在 tasks.py 中创建芹菜对象”
但这并不意味着我是 Celery 模块专家。
尝试将 'celeryApp.py' 的名称更改为 'celery.py'
我不知道如何克服这个问题。我通过降级到版本 4.4.2 解决了这个问题。
我正在使用 Django、Celery 和 RabbitMQ。当我从顶级目录 运行 celery -A FlakeFinder worker -l INFO
时,出现错误:
Usage: celery [OPTIONS] COMMAND [ARGS]...
Error: Invalid value for '-A' / '--app':
Unable to load celery application.
Module 'flakefinder' has no attribute 'celery'
如果我改为 运行 celery -A FlakeFinder.celeryApp worker -l INFO
,我会收到紫色文本错误:
ModuleNotFoundError: No module named 'celery.backends.amqp'
我不太确定从这里到哪里去。我怎样才能得到芹菜工人 运行ning?
我的文件夹结构如下所示:
. (FlakeFinder)
├── FlakeFinder
│ ├── __init__.py
│ ├── asgi.py
│ ├── celeryApp.py
│ ├── secrets.py
│ ├── settings.py
│ ├── tasks.py
│ ├── urls.py
│ └── wsgi.py
├── db.sqlite3
├── license.txt
├── manage.py
├── scraping
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ ├── models.py
│ ├── scraper.py
│ ├── tests.py
│ └── views.py
celeryApp.py
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from celery.schedules import crontab # scheduler
# default django settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'FlakeFinder.settings')
app = Celery('FlakeFinder')
app.conf.timezone = 'UTC'
app.config_from_object("django.conf:settings", namespace="CELERY")
app.autodiscover_tasks()
app.conf.beat_schedule = {
# executes every 1 minute
'scraping-task-three-hr': {
'task': 'scraping.tasks',
'schedule': crontab()
}
}
tasks.py
from scraping.scraper import *
from celeryApp import app
@app.task
def update_snow_locs():
...
错误似乎很清楚。
from celery import Celery
from celery import task
celery = Celery('tasks', broker='amqp://guest@localhost//') #!
import os
os.environ[ 'DJANGO_SETTINGS_MODULE' ] = "proj.settings"
@task()
def add_photos_task( lad_id ):
...
这是我在网上找到的解释 - “忘记在 tasks.py 中创建芹菜对象” 但这并不意味着我是 Celery 模块专家。
尝试将 'celeryApp.py' 的名称更改为 'celery.py'
我不知道如何克服这个问题。我通过降级到版本 4.4.2 解决了这个问题。