heroku django celerey:引发意外:valueerror服务器500错误

ewm0tg9j  于 2021-06-08  发布在  Redis
关注(0)|答案(0)|浏览(390)

我正试图在我的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配置

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题