Python 安装芹菜及;雷迪斯与赫罗库

Python 安装芹菜及;雷迪斯与赫罗库,python,django,heroku,redis,celery,Python,Django,Heroku,Redis,Celery,我使用Django 1.9、Python 2.7和Heroku 芹菜3和Redis运行良好,直到我切换到芹菜4.0.2并更改了配置 heroku日志显示以下消息: 2017-03-05T16:34:22.076383+00:00 app[worker.1]: Unknown command: 'celery' 以下是我的配置: \uuuu init.py\uuuu from __future__ import absolute_import, unicode_literals from .ce

我使用Django 1.9、Python 2.7和Heroku

芹菜3和Redis运行良好,直到我切换到芹菜4.0.2并更改了配置

heroku日志显示以下消息:

2017-03-05T16:34:22.076383+00:00 app[worker.1]: Unknown command: 'celery'
以下是我的配置:

\uuuu init.py\uuuu

from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
设置.py

INSTALLED_APPS = (
    ... 
    'django_celery_beat',
)

if ENVIRONMENT == 'PROD':
    from settings_remote import *
else:
    from settings_local import *
from __future__ import unicode_literals, absolute_import
import os
CELERY_BROKER_URL = os.environ['REDIS_URL']
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
设置\u remote.py

INSTALLED_APPS = (
    ... 
    'django_celery_beat',
)

if ENVIRONMENT == 'PROD':
    from settings_remote import *
else:
    from settings_local import *
from __future__ import unicode_literals, absolute_import
import os
CELERY_BROKER_URL = os.environ['REDIS_URL']
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
芹菜.py

from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'terradiem.settings')
from django.conf import settings
app = Celery('terradiem')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))
Procfile

web: gunicorn terradiem.wsgi --log-file -
worker: python manage.py celery worker --beat
.env

REDIS_URL=redis://

有什么线索吗?

我昨天吃芹菜有点问题,花了好几个小时想把它处理掉。最后,问题是我将项目的芹菜文件命名为芹菜.py

在我的其他文件中,当我引用芹菜库时:

from celery import Celery
它在我的项目的芹菜文件中查找芹菜类,并引发了一个错误。我的解决方案是将文件重命名为_芹菜.py

另外,请检查服务器env上是否安装了芹菜


我怀疑这是你的问题,但不得不提出

在程序文件中,更改:

worker: python manage.py celery worker --beat
用于:

并将django项目的名称放入[nameOfYourApp]


它响应未知命令:“芹菜”,因为manage.py没有这样的命令名。

我尝试了你的建议,但似乎不起作用。谢谢你。你把redis连接到你的应用程序了吗?