设置全局Celluloid池

时间:2013-12-10 23:39:34

标签: ruby-on-rails celluloid

我在Rails应用程序中使用Celluloid池在用户上传文件后卸载pdf转换。

我使用初始化程序为应用程序创建了一个全局转换池。

在我的开发环境(OS X,瘦)中一切顺利。 在我的CentOS盒子上运行它也没问题(Apache,Passenger)。

这基本上是初始设置:

配置/初始化/ converter_pool.rb

require './lib/x/convert_async'

CONVERT_POOL=X::ConvertAsync.pool

LIB / X / convert.rb

module X
  class Convert
  end
end

LIB / X / convert_async.rb

require_relative 'convert'

module X
  class ConvertAsync < Convert
    include Celluloid
  end
end

在某个阶段,我的游泳池停止在CentOS盒子上工作(usertest env),但在我的开发环境中继续正常。

附加说明:当通过控制台调用更新图像的方法时,池仍然有效。我想这个问题与加载顺序或某种权限有关。

不确定是什么造成的 - 有一个新的Linux内核和宝石的更新。

经过各种尝试后,我终于通过在类定义之后初始化池并删除​​池的初始化程序来再次使用它。

module X
  class ConvertAsync < Convert
    include Celluloid
  end
end

CONVERT_POOL=X::ConvertAsync.pool

我仍然有问题,因为我想更好地了解发生的事情。

有人知道可能导致它的原因吗? 在类定义之后实例化Celluloid池是个坏主意? 有没有潜在的问题?

非常感谢任何能够解决问题的人:) 干杯, 欧根

0 个答案:

没有答案