Faye Ruby Heroku 上的服务器端发布 - 检测到 EventMachine 缓冲区溢出
Faye Ruby Server Side Publish on Heroku - EventMachine buffer overflow detected
我在 heroku worker 上有一个 faye ruby 客户端(使用 sidekiq - 5 线程)发布到 linode 上的 faye 服务器 运行。
工作人员在几分钟后崩溃,并显示 检测到缓冲区溢出 消息。
*代码
EM.epoll
EM.run {
publication = @client.publish('/glive-bullion','body'=>body)
publication.callback do
EM.stop_event_loop
end
publication.errback do |error|
puts 'There was a problem: ' + error.message
EM.stop_event_loop
end
}
我试过以下方法:
1) EM.epoll 在 EM.run 之前
2) EM.stop_event_loop 在各自的回调中。
我知道是文件描述符限制导致了这个问题。
问题:
我如何释放客户端并停止 EM 事件循环以完全释放打开的文件?
是线程模式下的sidekiq 运行吗?
好的,我意识到错误了。
我在 EM.run 块之外创建客户端。一旦我将初始化移动到 EM.run 块中,一切正常。
我在 heroku worker 上有一个 faye ruby 客户端(使用 sidekiq - 5 线程)发布到 linode 上的 faye 服务器 运行。
工作人员在几分钟后崩溃,并显示 检测到缓冲区溢出 消息。
*代码
EM.epoll
EM.run {
publication = @client.publish('/glive-bullion','body'=>body)
publication.callback do
EM.stop_event_loop
end
publication.errback do |error|
puts 'There was a problem: ' + error.message
EM.stop_event_loop
end
}
我试过以下方法: 1) EM.epoll 在 EM.run 之前 2) EM.stop_event_loop 在各自的回调中。
我知道是文件描述符限制导致了这个问题。
问题: 我如何释放客户端并停止 EM 事件循环以完全释放打开的文件?
是线程模式下的sidekiq 运行吗?
好的,我意识到错误了。
我在 EM.run 块之外创建客户端。一旦我将初始化移动到 EM.run 块中,一切正常。