0

私はcron行を生成した「いつでも」gemを使用しています。

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

(上記の cron はテスト用であり、本番環境では頻繁に実行されることはありません =))

これと他の cron (thinking_sphinx など) では、コードを実行するために Rails 環境全体をロードする必要があります。( Rails cron でいつでも、環境を設定します)

Rails 環境を実行し、環境全体をリロードせずにコードを実行できるようにする gem はありますか?

スピンの問題を解決しようとしましたが、ファイルを渡すと、スピンがモデルを認識しないようです。

4

1 に答える 1

2

この例が毎日朝 5 時に実行されていることに気付きました。環境を 1 日に 1 回リロードできない場合は、修正しようとしている問題よりも大きな問題が発生している可能性があります :)

あなたの質問について、環境をリロードしない唯一の方法は、プロセスがロードされた環境でメモリにとどまり、ジョブを実行するためにそれ自体をフォークすることです。これが、テストを高速化するためのsporkの背後にある考え方です。

あなたの問題には少し圧倒されていると思います。

また、ジョブを実行するための環境に依存しない rake タスクを作成したり、コントローラー アクションを作成して curl コマンドを cron にすることもできます (もちろん、何らかの認証メカニズムを使用)。

于 2012-06-30T18:59:44.147 に答える