Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Heroku Django Celerey:引发意外的:ValueError服务器500错误_Python_Django_Heroku_Redis_Django Celery - Fatal编程技术网

Python Heroku Django Celerey:引发意外的:ValueError服务器500错误

Python Heroku Django Celerey:引发意外的:ValueError服务器500错误,python,django,heroku,redis,django-celery,Python,Django,Heroku,Redis,Django Celery,我正在尝试在Heroku应用程序上安排一些任务,其中包括一个Django芹菜,但是,我遇到了一个错误: raised unexpected: ValueError('Redis URL must specify one of the following schemes (redis://, rediss://, unix://)',) 现在供您参考,我有三个用于我的生产和开发环境的设置文件,其中一个是通用的。我的应用程序名为register,包含wsgi.py的文件是: register

我正在尝试在Heroku应用程序上安排一些任务,其中包括一个Django芹菜,但是,我遇到了一个错误:

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)
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)
在我的
芹菜.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)
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
编辑

在我的工作错误之后:我还看到以下错误:

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配置

你看了谢谢了吗?但在点击链接后,它并没有解决我的问题@el_bobo