Ruby on rails 只运行一次初始化
我正在开发一个Rails应用程序,它需要在启动时执行一些代码。由于我想与未来的应用程序共享此行为,因此我使用Railtie类将此代码放入gem中 lib/my_gem/railtie.rbRuby on rails 只运行一次初始化,ruby-on-rails,initialization,worker,railtie,Ruby On Rails,Initialization,Worker,Railtie,我正在开发一个Rails应用程序,它需要在启动时执行一些代码。由于我想与未来的应用程序共享此行为,因此我使用Railtie类将此代码放入gem中 lib/my_gem/railtie.rb 模块MyGem 类Railtie
模块MyGem
类Railtie
通过这种方式,初始化器由每个工作人员执行(我在开发中使用Pow和2个默认工作人员,我猜在生产中使用unicorn和多个工作人员时,它将是相同的),这会弄乱整个应用程序(在初始化器中,我设置了一个ENV变量,每个工作人员都会覆盖它)
有没有办法让代码只由1(第一个)工作者执行
感谢您的帮助,祝您度过愉快的一天。如果有人遇到同样的问题,我已解决将代码从初始值设定项移动到rake任务中,并在启动应用程序之前运行它(从Capistrano)。这样,我的ENV变量只设置一次。
module MyGem
class Railtie < Rails::Railtie
initializer 'my_gem.registration' do
# the code goes here
end
end
end