次のように、コントローラーから呼び出されてバックグラウンドで実行される Rails 4 アプリケーションに rake タスクがあります。
system "rake fetch_news SOURCE=#{src} CATS=#{cat} C_ID=#{c_id} S_ID=#{s_id} FEED_ID=#{f_id} &"
それはバックグラウンドで完璧に動作し、仕事をしますが、1.5 - 2 分の遅延の後、同じパラメーターで再度開始する必要があります。
非公式に、私はこれを次のように見ています:
desc "Fetch news for specific category"
task :fetch_news => :environment do
... code of my background task ...
sleep 120
<< insert here some code to restart the task >>
end
しかし、これを実装する方法がわかりません:(。最初は、タスクに関数を定義し、関数を呼び出し、スリープし、再度呼び出すことができると思っていましたが、タスクは関数を定義することを許可していません。
Google で解決策を検索しましたが、役立つ情報が見つかりません。アイデアをいただけますか?
ありがとう!