【问题标题】:Elastic Beanstalk and Rails – initializing multiple times?Elastic Beanstalk 和 Rails – 初始化多次?
【发布时间】:2016-09-29 18:42:08
【问题描述】:

当我将 RoR (4.2.6) 应用程序部署到 ElasticBeanstalk 时,初始化过程似乎运行了四次。这影响了我依赖作业调度程序对象的单例实例的方式(使用Rufus Scheduler)。

在几个初始化文件和application.rb 中,我添加了一些日志语句:

这里:

# /config/initializers/scheduler.rb
require 'rufus-scheduler'

::Rufus_lockfile = "/tmp/.rufus-scheduler.lock"

::Scheduler = Rufus::Scheduler.singleton(
  :lockfile => Rufus_lockfile
)

Rails.logger.info "1: started Scheduler #{Scheduler.object_id}"

这里:

# /config/initializers/cookies_serializer.rb

Rails.logger.info "2: some other initializer"

这里:

# /config/application.rb

require File.expand_path('../boot', __FILE__)
require 'rails/all'

Bundler.require(*Rails.groups)

module MyApp
  class Application < Rails::Application

    ... 

    config.after_initialize do
      Rails.logger.info "3: after app is initialized"
    end

  end
end

在我运行eb deploy 并完成后,这是我在app/log/production.log 顶部看到的:

I, [2016-05-31T10:31:08.756302 #18753]  INFO -- : 2: some other initializer
I, [2016-05-31T10:31:08.757252 #18753]  INFO -- : 1: started Scheduler 47235057343600
I, [2016-05-31T10:31:08.896353 #18753]  INFO -- : 3: after app is initialized
I, [2016-05-31T10:31:23.669517 #18817]  INFO -- : 2: some other initializer
I, [2016-05-31T10:31:23.670380 #18817]  INFO -- : 1: started Scheduler 46989489069800
I, [2016-05-31T10:31:23.806154 #18817]  INFO -- : 3: after app is initialized
D, [2016-05-31T10:31:23.969103 #18817] DEBUG -- :   ^[[1m^[[36mActiveRecord::SchemaMigration Load (1.3ms)^[[0m  ^[[1mSELECT "schema_migrations".* FROM "schema_migrations"^[[0m
I, [2016-05-31T10:31:33.108449 #18897]  INFO -- : 2: some other initializer
I, [2016-05-31T10:31:33.109513 #18897]  INFO -- : 1: started Scheduler 47156425207060
I, [2016-05-31T10:31:33.116500 #18901]  INFO -- : 2: some other initializer
I, [2016-05-31T10:31:33.117374 #18901]  INFO -- : 1: started Scheduler 47156425216940
I, [2016-05-31T10:31:33.790266 #18901]  INFO -- : 3: after app is initialized
I, [2016-05-31T10:31:33.844517 #18897]  INFO -- : 3: after app is initialized

所以看起来初始化程序文件,甚至我的 after_initializer 块中的代码都运行了四次......我不知道为什么。

【问题讨论】:

    标签: ruby ruby-on-rails-4 amazon-elastic-beanstalk


    【解决方案1】:

    在 rufus-scheduler 问题系统上提出了问题,在那里回答:https://github.com/jmettraux/rufus-scheduler/issues/208

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 2018-07-06
      • 2014-01-15
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 2016-09-25
      • 1970-01-01
      • 2015-06-19
      相关资源
      最近更新 更多