如何在Rails(2.x)脚本中急切加载所有依赖项?

时间:2012-07-09 20:06:19

标签: ruby-on-rails multithreading activesupport

我在Rails 2应用程序中有一个脚本,它涉及并行执行许多任务(使用parallel gem)和线程。由于Rails(或ActiveSupport?)加载依赖关系的方式,我遇到的是未初始化常量的问题。

我的在线研究向我表明,我可能应该使用config.threadsafe!或其他类似的东西来解决这个问题。但问题是,我不想改变整个应用程序的工作方式(通过更改environment.rb),因为线程的使用实际上已经本地化到了这个脚本。

到目前为止,我所做的只是在创建任何新的Thread对象之前简单地初始化我需要的常量:

constants_to_load = [
  User,
  Merchant,
  Loggable,
  UserMailer,
  # etc.
]

# code involving threads

这显然不是一个好方法,因为它完全基于我自己猜测的常量需要加载的常量列表(主要是每当我遇到异常时反应性地添加常量)并且远远不能满足未来需求得到。是否可以只说“加载我可能需要的一切”?我知道这听起来很糟糕;这对我来说似乎是最傻瓜式的做法。但如果还有另一种方法可以做到这一点,我全都听见了。

0 个答案:

没有答案