如何解决通过 Heroku 使用 Django 接收 [Errno 111] 连接调用失败 ('127.0.0.1', 6379)
我在生产环境中运行 Django,我的 websockets 将连接但不会发送任何数据。但是,我确实收到 [Errno 111] Connect call Failed ('127.0.0.1',6379)
作为错误。我听说这是因为我的 settings.py,但到目前为止我还没有找到可靠的解决方法。这是我目前所拥有的。
设置
简介:
web: daphne API.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python manage.py runworker background -v2
settings.py:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_redis.core.RedisChannelLayer","CONfig": {
"hosts": [("127.0.0.1",6379)],},}
asgi.py:
application = ProtocolTypeRouter({
'http': django_asgi_app,'websocket': AllowedHostsOriginValidator(
AuthMiddlewareStack(
URLRouter(
[
url('timer',TestConsumer.as_asgi()),]
)
)
),'channel': ChannelNameRouter({
'background': BackgroundConsumer.as_asgi()
})
})
Heroku Redis 服务器连接日志:
2021-07-03T18:33:56.000000+00:00 app[heroku-redis]: source=REdis addon=redis-angular-30850 sample#active-connections=1 sample#load-avg-1m=0.43 sample#load-avg-5m=0.34 sample#load-avg-15m=0.285 sample#read-iops=0 sample#write-iops=0 sample#memory-total=15628108kB sample#memory-free=5542160kB sample#memory-cached=5297476kB sample#memory-redis=333688bytes sample#hit-rate=1 sample#evicted-keys=0
添加了 Heroku 的 Redis 插件,但我没有采取任何进一步的步骤来运行它。但是,它会在其设置中显示其“可用”。
问题/日志
向 Redis 服务器发送信号时,输出是 [Errno 111] Connect call Failed ('127.0.0.1',6379)
错误。除了简单的连接之外,Websockets 似乎不做任何事情。
日志:
ConnectionRefusedError at /API/1/
[Errno 111] Connect call Failed ('127.0.0.1',6379)
Request Method: PUT
Request URL: http://example.herokuapp.com/API/1/
Django Version: 3.2.3
Exception Type: ConnectionRefusedError
Exception Value:
[Errno 111] Connect call Failed ('127.0.0.1',6379)
Exception Location: /app/.heroku/python/lib/python3.8/asyncio/selector_events.py,line 528,in _sock_connect_cb
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.8.10
我的尝试
- 将 redis 主机更改为
"hosts": [("redis",
,如此处所述Docker [Errno 111] Connect call failed ('127.0.0.1',6379) - 更改了 procfile,没有任何作用
- 尝试在 Heroku 上“运行”Redis 服务器,正如这里提到的https://github.com/django/channels_redis/issues/102 没弄清楚,我认为 Redis 插件会自动运行
如果有人有任何提示,我将不胜感激。我认为这是一个非常简单的修复,我只是不理解。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。