1. ジェムを追加する
素直に resque をインストールすれば良い。
rails_project/Gemfile
gem 'resque'
$ bundle install
2. 実行内容を書く
最終的にワーカーに実行させたい処理を、モデルの perform
メソッドの中に書く。
ここではテストとして、標準出力するだけの処理を作る。
rails_project/app/models/example.rb
class Example
@queue = :default
def self.perform
p 'Hello Sword!'
end
end
3. ワーカー用の設定をおこなう
Rakefile に1行足すだけで良い。
rails_project/Rakefile
require 'resque/tasks'
4. ワーカーを立ち上げる
$ TERM_CHILD=1 QUEUES=* bundle exec rake environment resque:work
立ち上げても、今は何も起こらない。
なぜならジョブが登録されるまで、ワーカーは喋らないからだ。とりあえず放っておこう。
5. ジョブを登録する
ワーカーとは別タブ(別窓)でジョブを追加してみよう。
Rails のコンソールを使うのが手軽だ。
$ bundle exec rails console
irb(main)> Resque.enqueue(Example)
=> true
成功したら true
が返ってくる。
6. ジョブが実行される
数秒経ってから、先ほどのワーカーのタブに戻ってみよう。
**「文字列を標準出力する」**というジョブが実行されているのが分かるだろう。
おめでとう!
前提
- Rails プロジェクトは既に作成されていることとする。
- bundler は既にインストールされていることとする。
環境
- resque (1.25.2)
- Rails 4.2.4
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
メンター受付