Ruby中的GServer线程问题

时间:2009-03-11 14:23:52

标签: ruby

环顾四周,我找到了http://www.devco.net/archives/2008/06/26/adventures_with_ruby.php,博主们抱怨GServer的bug来破坏线程并达到最大连接。这个问题真的/仍然是真的吗?

由于

3 个答案:

答案 0 :(得分:1)

我在Ruby 1.9.1中遇到过GServer的两个问题。

  1. 突然停止
  2. 它会造成内存泄漏
  3. http://tora-japan.com/wiki/GServer_in_Ruby_1.9.1_has_two_problems

    然后,我自己为Ruby 1.9.1编写了一个Pre-Threaded TCP Server, 从上面的维基页面链接。

答案 1 :(得分:0)

使用GServer作为简单的TCP服务器时遇到了类似的问题,但由于我最初计划使用EventMachine,因此我没有深入研究这个问题。

最后我移植了我的代码以使用该库并且很高兴。

抱歉,我不知道真正的答案,但我确实知道我在使用GServer时遇到了问题,并且自从我切换以来我对EM感到非常满意 - 所以你可能想要研究一下。一旦我理解了EM的运作方式,替换库并不太难。

答案 2 :(得分:0)

Eventmachine很棒:

类服务器

module Thread_server

  def receive_data data

    data.chomp
    {.......................}

  end
end

def self.perform

  EventMachine::run {

  EventMachine::start_server "xxx.xxx.xxx.xxx", pxoxrxt, Thread_server

  }

相关问题