4

Herokuを使用していて、Herokuアプリで定期的にアクションを要求するcronを介して呼び出されるスクリプト(別のサーバー上)が必要です。このアクションは、完了するまでに1〜2分かかる可能性のある処理を実行します。Herokuには30秒のリクエスト制限があると思います。代わりに、コントローラーアクションからRakeタスクを呼び出すことができると考えていました。

これは機能しますか?誰かがこれをまだ試したかどうか知りたいです。

ありがとう。

4

3 に答える 3

4

タスクを開始するためのプロキシとしてHTTPリクエストを使用しない限り、rakeタスクは機能します。実際、タスクがHTTPリクエストからフォークされた場合、タイムアウトはHTTPリクエストと同じになります。

タスクを開始するには、別の方法が必要です。良い解決策として、crontab(Heroku側)またはWorkerのいずれか。

于 2010-02-22T13:50:04.780 に答える
2

このために、ワーカーでバックグラウンドジョブを使用することをお勧めします。その場合、定期的なプロセスはワーカーを開始するだけでよく、プロセスにどれだけ時間がかかってもかまいません。

于 2010-02-22T13:18:04.803 に答える
2

この問題を正確に解決するためのgemを作成しました。これにより、任意のrakeタスクをdelayed_jobとしてキューに入れることができます。

rake delay:db:seed

実行されます

rake db:seed

delayd_jobとして。http://rubygems.org/gems/delayed_taskまたはhttp://blog.opsb.co.uk/long-running-rake-tasks-on-herokuで見つけることができます。

于 2011-05-11T22:25:40.070 に答える