一般社団法人 全国個人事業主支援協会

COLUMN コラム

  • Sidekiqを活用した非同期処理の実装方法

1. Sidekiqとは?

Sidekiqは、Ruby on Railsアプリケーションで非同期処理を実装するための強力なバックグラウンドジョブフレームワークです。Redisをデータストアとして利用し、マルチスレッドで高速にジョブを処理できます。

2. Sidekiqの導入

まず、GemfileにSidekiqを追加し、bundle installを実行します。

gem 'sidekiq'

次に、config/application.rbにSidekiqを設定します。

module MyApp
  class Application < Rails::Application
    config.active_job.queue_adapter = :sidekiq
  end
end

3. ワーカーの作成

Sidekiqでは、ジョブを処理するためにワーカー(Worker)クラスを作成します。

class SampleWorker
  include Sidekiq::Worker

  def perform(name)
    puts "Hello, #{name}!"
  end
end

4. ジョブの実行

作成したワーカーを非同期で実行するには、以下のように記述します。

SampleWorker.perform_async("Sidekiq")

遅延実行(指定時間後に実行)も可能です。

SampleWorker.perform_in(10.minutes, "Delayed Job")

5. Sidekiqの起動

Sidekiqを動作させるために、まずRedisを起動しておきます。その後、以下のコマンドでSidekiqを起動します。

bundle exec sidekiq

6. 管理画面の利用

Sidekiqはジョブの管理画面を提供しています。config/routes.rb に以下を追加すると、Web UI にアクセスできます。

require 'sidekiq/web'
mount Sidekiq::Web => '/sidekiq'

http://localhost:3000/sidekiq にアクセスすると、ジョブの状態を確認できます。

7. まとめ

Sidekiqを活用すると、Railsアプリケーションで非同期処理を簡単に実装できます。メール送信、画像処理、データのバッチ処理など、時間のかかる処理をバックグラウンドで実行することで、アプリケーションの応答性を向上させることができます。

The following two tabs change content below.

金 玹昊

最新記事 by 金 玹昊 (全て見る)

この記事をシェアする

  • Twitterでシェア
  • Facebookでシェア
  • LINEでシェア