Heroku Django Celerey:引发意外:ValueError Server 500错误

问题描述

我试图在我的Heroku应用程序上安排一些Django celery的任务,但是,我遇到了一个错误

raised unexpected: ValueError('Redis URL must specify one of the following schemes (redis://,rediss://,unix://)',)

现在供您参考,我为生产和开发环境提供了三个设置文件,其中有一个设置文件。我的应用称为注册,包含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那样,可以看到配置变量设置正确。

这也是我的procfile

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

编辑

在我的工作程序错误之后:我也看到此错误

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

我不知道它们是否相互关联。还是因为我的网址配置

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...