在Rails完成加载后运行代码?

我有一个需要每分钟执行一次的周期性任务(使用delayed_job)。 我希望Rails在加载完成后自动将其排队,如果系统中还没有这样的任务。

在整个Rails启动流程结束时运行一些代码的好地方是什么? 有人建议使用config / environments / development.rb(或其他环境),但是当我从那里排队作业时,delayed_job会给我ActiveRecord问题。

我咨询了http://guides.rubyonrails.org/initialization.html ,似乎也没有明确的位置。

是否可以通过rake或其他方式在我的应用程序代码外部完成这种部署后设置? 有什么建议?

谢谢!

关于http://guides.rubyonrails.org/initialization.html ,抱歉,我们正在努力重写它。 对于您的问题,我会在您的application.rb中尝试使用config.after_initialize

 def after_initialize(&block) ActiveSupport.on_load(:after_initialize, :yield => true, &block) end 

你真的有两种选择

1)将其添加到初始化程序目录中,这应该没问题。

2)在application.rb的最后添加它,这不太干净但是此时会有初始化器准备就绪;如果1)因为AR问题而失败那么2)