我正试图在我的heroku应用程序上安排一些任务一个djangocelery ,但是,我有一个错误:
raised unexpected: ValueError('Redis URL must specify one of the following schemes (redis://, rediss://, unix://)',)
现在,我有三个用于我的生产和开发环境的设置文件供您参考,其中一个是公用的。我的应用程序名为register,包含 wsgi.py
是:
register
-settings
----common.py
----production.py
----development.py
-celery.py
-wsgi.py
现在在我的 production.py
我拥有的文件:
from register.settings.common import *
import os
from urllib.parse import urlparse
import django_heroku
DEBUG = False
ALLOWED_HOSTS = ['mysite.herokuapp.com','wwww.mysite.com','mysite.com']
# EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER')
# EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD')
redis_url = urlparse(os.environ.get('REDISTOGO_URL', 'redis://localhost:6959'))
CACHES = {
'default': {
'BACKEND': "django_redis.cache.RedisCache",
'LOCATION': '%s:%s' % (redis_url.hostname, redis_url.port),
'OPTIONS': {
'DB': 0,
'PASSWORD': redis_url.password,
}
}
}
CELERY_BROKER_URL=os.environ.get('REDISTOGO_URL')
CELERY_RESULT_BACKEND=os.environ.get('REDISTOGO_URL')
CELERY_BROKER_TRANSPORT_OPTIONS = {
"max_connections": 2,
}
db_from_env = dj_database_url.config(conn_max_age=600)
DATABASES['default'].update(db_from_env)
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
django_heroku.settings(locals(),logging=False)
在我的心里 celery.py
我拥有的文件:
from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'register.settings.production')
app = Celery('register')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
我不知道是什么导致了这个错误,当我这样做 heroku config
我可以看到配置变量设置正确。
这也是我的文件:
web: gunicorn register.wsgi:application --env DJANGO_SETTINGS_MODULE='register.settings.production' --log-file -
worker: celery -A register worker -E -l info
celery_beat: celery -A register beat --loglevel=info
编辑
在我的worker错误之后:我还看到以下错误:
2020-09-07T16:19:37.558111+00:00 heroku[router]: at=info method=GET path="/" host=mysite.com request_id=4ce6cc94-2ae3-4da8-90fc-c341c4c24a31 fwd="99.255.202.184" dyno=web.1 connect=1ms service=27ms status=500 bytes=380 protocol=http
我不知道他们是否有亲戚关系。还是因为我的url配置
暂无答案!
目前还没有任何答案,快来回答吧!