我目前正在尝试使用带有django频道的django框架来设置googleappengineflex。对于我目前的项目,我需要一个websocket,所以我试图重建django频道在网站上提供的教程:https://channels.readthedocs.io/en/latest/tutorial/
目前,我一直致力于将redis添加到我的googleappflex示例中。我按照google文档建立redis连接——不幸的是,这个例子在flask中:google doc我假设我的错误很小,我只需要按比例将django channel\u层连接到redis。
执行 sudo gcloud redis instances describe <redisname> --region=us-central1
给了我以下回应:
图片:“redis描述”
执行 sudo gcloud app describe
,此响应:
我配置了我的 app.yaml
具体如下:
# app.yaml
# [START runtime]
runtime: python
env: flex
entrypoint: daphne django_channels_heroku.asgi:application --port $PORT --bind 0.0.0.0
runtime_config:
python_version: 3
automatic_scaling:
min_num_instances: 1
max_num_instances: 7
# Update with Redis instance IP and port
env_variables:
REDISHOST: '<the ip in "host" from "Redis Describtion" image above>'
REDISPORT: '6379'
# Update with Redis instance network name
network:
name: default
# [END runtime]
..在我的settings.py中,我添加了这个作为redis连接(顺便说一句,这感觉很不对):
# settings.py
import redis
# settings.py stuff...
# connect to redis
redis_host = os.environ.get('REDISHOST', '127.0.0.1')
redis_port = int(os.environ.get('REDISPORT', 6379))
redis_client = redis.StrictRedis(host=redis_host, port=redis_port)
# Channels
ASGI_APPLICATION = "django_channels_heroku.routing.application"
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('127.0.0.1', 6379)],
},
},
}
我做错了什么。如何正确使用django连接到redis?
以下是一些链接:
https://cloud.google.com/memorystore/docs/redis/connect-redis-instance-flex
django,redis:连接代码放在哪里
在googleflex引擎上部署django频道应用程序
如何从google的标准应用程序引擎(Python3.7)连接到redis示例(memorystore)
https://cloud.google.com/memorystore/docs/redis/connect-redis-instance-flex
https://cloud.google.com/memorystore/docs/redis/quickstart-gcloud
1条答案
按热度按时间hujrc8aj1#
我的错误在settings.py中:
正确版本: