我在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池是个坏主意? 有没有潜在的问题?
非常感谢任何能够解决问题的人:) 干杯, 欧根