質問
1)Herokuでcronタスクを実行しているとき、HerokuはcronタスクがX分だけ持続する時間制限を持っていますか、または処理を完了するのに必要な時間にcronタスクを実行できますか?
2)私のアプリケーションを最適化するために、私はすべてのバッチモードへの私の処理。だから私は多くの更新クエリを持っています。基本的に、1つのHeroku cronファイルが乱雑になっています。コードをクリーンアップするにはどうすればよいですか?複数のレーキタスクを作成し、cronファイルからタスクタスクを呼び出す必要がありますか?
2。1)それに同意するならば、どのようにしてcronタスクからrakeタスクを呼び出すのですか?請求、レイクアカウント:コレクション、レーキアカウント:クリーンアップの3つの独立したレーキタスクがあるとしましょう。どのようにそれらをcronファイルで呼び出すのですか?
回答:
回答№1の場合は3私が知っている時間制限はありません。
1つの大きなcronタスクの代わりに複数のタスクを使用する良い考えです。デバッグとメンテナンスが簡単になるだけでなく、必要に応じて個別に実行することも簡単にできます。また、ファクタドコードはすべて単なる良いアイデアです。
別のタスクからタスクを実行することは、 Rake::Task[task].execute
。あなたはこのようなものを持っています:
desc "Heroku cron job"
task :cron => :environment do
%w{accounts:billing accounts:collections accounts:cleanup}.each do |task|
Rake::Task[task].execute
end
end