0

次のように、コントローラーから呼び出されてバックグラウンドで実行される 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 で解決策を検索しましたが、役立つ情報が見つかりません。アイデアをいただけますか?

ありがとう!

4

1 に答える 1