gpt4 book ai didi

google-app-engine - 带有 Flask 的 Google 应用引擎 : Memorystore/redis produces [Errno 104] Connection reset by peer

转载 作者:行者123 更新时间:2023-12-02 03:05:06 26 4
gpt4 key购买 nike

我的基于 Flask 的 GAE 应用程序已经运行了几周,没有出现任何问题。今天我注意到根 URL 大多数时候都会产生 500 内部服务器错误。在日志记录中,我看到这似乎与 Flask 中的 session 处理(使用 Flask-Session)有关。在转换到 GAE 之前,该应用程序在具有本地 Redis 实例的虚拟机上运行了一年多,没有出现任何问题。

此时 Memorystore 实例只有大约 1500 个键和 3 或 4 MB 的数据,因此负载并不重。服务器本身接收的流量非常少(只有我和偶尔的机器人)。由于我是 GAE 和 Google Cloud 环境的新手,因此我正在寻找有关导致这种行为变化的原因的见解,或者我应该采取哪些诊断程序。

典型的失败回溯如下所示:

Traceback (most recent call last): 
File "/env/lib/python3.7/site-packages/flask/app.py", line 1969, in finalize_request response = self.process_response(response)
File "/env/lib/python3.7/site-packages/flask/app.py", line 2268, in process_response self.session_interface.save_session(self, ctx.session, response)
File "/env/lib/python3.7/site-packages/flask_session/sessions.py", line 166, in save_session time=total_seconds(app.permanent_session_lifetime))
File "/env/lib/python3.7/site-packages/redis/client.py", line 1540, in setex return self.execute_command('SETEX', name, time, value)
File "/env/lib/python3.7/site-packages/redis/client.py", line 836, in execute_command conn = self.connection or pool.get_connection(command_name, **options)
File "/env/lib/python3.7/site-packages/redis/connection.py", line 1065, in get_connection if connection.can_read():
File "/env/lib/python3.7/site-packages/redis/connection.py", line 682, in can_read return self._parser.can_read(timeout)
File "/env/lib/python3.7/site-packages/redis/connection.py", line 295, in can_read return self._buffer and self._buffer.can_read(timeout)
File "/env/lib/python3.7/site-packages/redis/connection.py", line 205, in can_read raise_on_timeout=False)
File "/env/lib/python3.7/site-packages/redis/connection.py", line 173, in _read_from_socket data = recv(self._sock, socket_read_size)
File "/env/lib/python3.7/site-packages/redis/_compat.py", line 58, in recv return sock.recv(*args, **kwargs) ConnectionResetError: [Errno 104] Connection reset by peer

这又是一种新行为。服务器完美运行了几周。可能发生了什么变化以及我应该在哪里寻找?

可能的相关问题:https://github.com/andymccurdy/redis-py/issues/1186

最佳答案

使用health_check_interval为我们消除了大部分(但不是全部)“连接由对等方重置”错误(GAE Python 2.7):

self._redis = Redis(
environ.get("REDISHOST", "localhost"),
int(environ.get("REDISPORT", 6379)),
health_check_interval=30,
)

也许低于 30 的值会消除剩余的出现。

关于google-app-engine - 带有 Flask 的 Google 应用引擎 : Memorystore/redis produces [Errno 104] Connection reset by peer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57518452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com