Multiple无法从客户端接收数据:通过对等Postgresql和Resque重置连接

pja*_*mer 1 postgresql resque puma

我有一个运行Postgresql的服务器.在日志中我看到这个消息为我的resque基于'工人'框,每分钟多次.几分钟没有消息,其他可能是10次.

2016-01-12 13:40:36 EST:1.1.8.2(33899):[16141]: LOG:  could not receive data from client: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)

现在,当我进入1.1.8.2框中观察netstat -ntp我没有看到端口33899,并且其中大部分至少在40xxx范围内.这可能是猜想,但我不知道为什么Redis/Resque/Puma Rails堆栈会打印出这些消息,更不用说这意味着即使我到底了.

如果它们"正常"关闭,我会获回记忆吗?

这是一件值得警惕的事吗?

当数据库框和工作框都不再显示端口时,如何调试打开的OLD端口?

Mik*_*ell 5

此消息可能是由于resque工作者任务在退出之前未关闭数据库连接.这不是一个大问题,但可能Postgres正在做一些额外的工作来清理它,它会弄乱你的日志文件......

一种解决方案是在resque worker的任务文件(包含self.perform定义的同一文件)中添加一个钩子:

  def self.after_perform(*args)
    ActiveRecord::Base.connection.disconnect!
  end
Run Code Online (Sandbox Code Playgroud)