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 块中,一切正常。