首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器有时意外地关闭连接。

服务器有时意外地关闭连接。
EN

Stack Overflow用户
提问于 2019-09-26 02:34:41
回答 1查看 1.5K关注 0票数 1

项目背景:

event

  • Postgresql,
  1. Django项目,我使用
  2. 运行项目,在项目中,我使用python处理一些配置,如:

代码语言:javascript
复制
DATABASES['default'] = {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': xxx,
    'USER': xxx,
    'PASSWORD': xxx,
    'HOST': 'xxx',
    'PORT': '5432',
    'CONN_MAX_AGE': 60 * 10,  # seconds
    'OPTIONS': {
        'connect_timeout': 20,
    },
}

将保留一个线程来处理某些事件。因此,线程有自己的postgresql数据库连接。有时,我发现它会引发数据库连接问题,就像这样,我不知道为什么数据库连接没有正常关闭

代码语言:javascript
复制
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/engineio/server.py", line 520, in _trigger_event
    return self.handlers[event](*args)
  File "/usr/local/lib/python2.7/site-packages/socketio/server.py", line 590, in _handle_eio_message
    self._handle_event(sid, pkt.namespace, pkt.id, pkt.data)
  File "/usr/local/lib/python2.7/site-packages/socketio/server.py", line 526, in _handle_event
    self._handle_event_internal(self, sid, data, namespace, id)
  File "/usr/local/lib/python2.7/site-packages/socketio/server.py", line 529, in _handle_event_internal
    r = server._trigger_event(data[0], namespace, sid, *data[1:])
  File "/usr/local/lib/python2.7/site-packages/socketio/server.py", line 558, in _trigger_event
    return self.handlers[namespace][event](*args)
  File "/usr/src/app/async_worker/controllers/server/event_handler.py", line 61, in on_jira_handle_from_client_retrieve
    ticket = Ticket.get_ticket_by_id(ticket_id)
  File "/usr/src/app/review/models/ticket.py", line 144, in get_ticket_by_id
    return Ticket.objects.filter(id=ticket_id).first()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 564, in first
    objects = list((self if self.ordered else self.order_by('pk'))[:1])
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 250, in __iter__
    self._fetch_all()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1118, in _fetch_all
    self._result_cache = list(self._iterable_class(self))
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 53, in __iter__
    results = compiler.execute_sql(chunked_fetch=self.chunked_fetch)
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 899, in execute_sql
    raise original_exception
OperationalError: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.

这就是我在PostgreSQL日志文件中得到的内容:

代码语言:javascript
复制
LOG: could not receive data from client: Connection reset by peer

关于这个问题的一些想法?我认为如果连接保持太长时间(> CONN_MAX_AGE),则应关闭康涅狄格并将其设置为无,但实际上连接不是空的,而是已经关闭的连接。

EN

回答 1

Stack Overflow用户

发布于 2019-09-26 08:40:23

您看到的错误消息来自PostgreSQL客户端库。

现在,PostgreSQL服务器和客户端都抱怨对方突然消失了,所以这几乎肯定是一个网络问题。

我的钱在一个配置不当的防火墙上,过一段时间后,它会减少空闲连接。我一直想知道是否有任何有效的用例让防火墙这样做.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58108823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档