【问题标题】:Avoid loading rails environment multiple times with cron避免使用 cron 多次加载 rails 环境
【发布时间】:2012-07-01 19:00:39
【问题描述】:

我正在使用“whenever” gem,它为我生成了一个 cron 行。

0 5 * * * /bin/bash -l -c 'cd /projects/my_rails && rails runner -e development "Indexing::LikeIndexer.index_deltas"'

(上面的 cron 仅用于测试,不会在生产中频繁运行 =))

这个和其他 crons(如 thinking_sphinx's)需要加载整个 rails 环境才能执行代码。 (Rails cron with whenever, setting the environment)

是否有任何 gem 可以运行我的 rails 环境并允许它执行代码而无需重新加载整个环境?

我试图用 spin 解决问题,但是当我将文件传递给它时,spin 似乎无法识别我的模型。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3


    【解决方案1】:

    您意识到您的示例每天早上 5 点运行。如果您无法每天重新加载环境一次,那么您可能会遇到比您尝试修复的问题更大的问题 :)

    关于您的问题,不重新加载环境的唯一方法是让进程在加载了环境的情况下留在内存中,然后分叉自己来完成这项工作。这就是 spork 背后加速测试的想法。

    我认为你的问题有点过分了。

    您也可以不依赖于工作环境来执行 rake 任务,或者执行控制器操作并 cron 执行 curl 命令(当然还有某种身份验证机制)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-15
      • 2015-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多