LoginSignup
1
1

More than 3 years have passed since last update.

sidekiqざっくりまとめ

Posted at

Railsで非同期処理を実現するsidekiqについて調べてわかったことをまとめます。
sidekiq自体はRails以外でも使えるものらしいです。

何ができるか

非同期処理を実現する。
例えば画像アップロードの処理を非同期にすることで、ユーザーは画像アップロードが終わるまで待つことなく他のページに遷移できて、快適。

必要なもの

  • redisサーバー
  • gem: sidekiq

使い方

app/workers/◯◯_worker.rbにクラスとメソッドを作成する

worker
class HogeWorker
  include Sidekiq::Worker

  def perform(id)
    @event = Event.find(id)
    @event.calculate_rank!
  end
end

controller内で<クラス名>.<メソッド名>_asyncでキューに入れる

controller
def ranking
  HogeWorker.perform_async @event.id
end

トリガーを発火して実行する

コマンドラインでコマンドを実行したり、あらかじめ定義した条件に合致した時、キューに入った処理が実行されます。

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1