2016-05-05 10 views
0

ルビーの残り時間をカウントダウンしました。しかし、バックグラウンドで実行する方法を理解できません。コントローラまたはヘルパーでビューをロードする前に起動しているため、カウントダウンが完了してからビューがロードされるためです。Rails - バックグラウンドジョブ(カウントダウン)

私はDBでその更新時間を節約する必要があるためので、私は優先度の低いバックグラウンドで実行する必要があります。(機能が正常に動作している)

私はこの宝石RESQUEを発見し、それはそれのために良いことですかより良い方法はマニュアルですか?

私は非常にルビーの新機能です。だから私はそのアドバイスを感謝します。

は、これは、バックグラウンド処理のためのsidekiq宝石https://github.com/mperham/sidekiqを使用することができMY JOB

@commits.each do |t| 
    timer_date = t.updated_at + 6000 
    while Time.now < timer_date 
     timeo = Time.at(timer_date.to_i - Time.now.to_i) 
     t.remain = timeo 
     t.save 
     sleep 1 
    end 
end 
+0

あなたはsidekiqのバックグラウンドジョブについて話していますか? –

+0

私はバックグラウンドジョブについて話しています。サーバーが稼動している間にその関数をロードする方法は、ビューの読み込みを遅くすることはありません。 – liborza

+0

私はちょうどそれを行う方法の最善の方法を知りたいです。 – liborza

答えて

1

です。

+0

それは外部の仕事に基づいていますか?それともローカルですか? – liborza

+0

私は100以上のコミットを持っており、そのそれぞれがそのカウントダウンを実行しているので、かなり大きい – liborza

+0

Sidekiqは同じプロセスで同時に多くのジョブを処理できます。さまざまなジョブに常にワーカーを追加してサイドキックでエンキューできます。この宝石を使用するRailkeastもあります。http://railscasts.com/episodes/366-sidekiq –

関連する問題