我在 Rails 应用程序中使用赛璐珞池在用户上传文件后卸载 pdf 转换。
我使用初始化程序为应用程序创建了一个全局转换池。
在我的开发环境(OS X,thin)中一切顺利。在我的 CentOS 机器(Apache,Passenger)上运行它也没有问题。
这基本上是初始设置:
config/initializers/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 内核和 gems 更新。
经过各种尝试,我终于通过在类定义之后初始化池并删除池的初始化程序来让它再次工作。
module X
class ConvertAsync < Convert
include Celluloid
end
end
CONVERT_POOL=X::ConvertAsync.pool
我仍然有问题,因为我想更好地了解发生了什么。
有谁知道可能是什么原因造成的?在类定义之后实例化赛璐珞池是个坏主意吗?有没有潜在的问题?
非常感谢任何可以阐明的人:)干杯,尤金