【发布时间】:2019-07-12 15:48:16
【问题描述】:
我已经将我的 django webapp 部署到我的 heroku 服务器,它工作正常,直到我添加了一个 websocket 连接,该连接在创建模型对象后立即在单独的 url 中显示模型对象的内容。为此,我将 Django 频道与托管在 redislabs 上的 redis 服务器一起使用。为了运行 asgi 应用程序,我尝试使用 daphne 服务器,但是当我尝试使用以下命令运行 daphne 服务器时:
$daphne smartResturant.asgi:channel_layer --port 8888
,它说
“django.core.exceptions.AppRegistryNotReady:应用尚未加载”
我的 asgi.py
import os
import django
from smartResturant.routing import get_default_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smartResturant.settings")
django.setup()
application = get_default_application()
我的设置.py
ASGI_APPLICATION = 'smartResturant.routing.application'
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": ['redis://:xxxxxxxx@redis-13131.c85.us-east-1-2.ec2.cloud.redislabs.com:13131']
},
},
}
当我在本地运行而不使用 daphne 服务器时,它工作正常。但我发现要在托管服务器上运行基于 asgi 的应用程序,您必须使用 daphne 服务器,而我无法运行它。任何帮助将不胜感激!
【问题讨论】:
-
第一个最基本的问题,你是不是忘记在设置里加
django-secret-key了? -
我的设置里有!
-
在我过去的经验中,我确实遇到了循环依赖的问题,但不确定你的情况。希望更多有经验的人来帮忙。
-
你找到解决办法了吗?