■参考: RailsでAcitiveJobとDelayedJobを使ってバックグランド処理を行う
cf. http://ruby-rails.hatenadiary.com/entry/20150304/1425396671
■参考: Active Job の基礎
cf. http://railsguides.jp/active_job_basics.html

非同期実行
ActiveJob  : Rails標準
DelayedJob : 専用テーブル(redis不要)
Resque     : redis/管理画面あり/フォーク
Sidekiq    : redis/管理画面あり/マルチスレッド


○主な手順
Gemfile:
gem 'delayed_job_active_record'
gem 'daemons'

rails g delayed_job:active_record # job管理テーブル
rake db:migrate

rails g scaffold letter title description delivered_at:time
rake db:migrate


○fg/bg切り替え:「.delay」を挟むだけ
# app/controllers/letters_controller.rb
@letter.deliver       # fg処理
@letter.delay.deliver # bg処理


○workerの起動
# 例. fg処理
rake jobs:work # 終了は、Ctrl+C

# 例. bg処理(2woker)
./bin/delayed_job -n 2 start
./bin/delayed_job stop
./bin/delayed_job -n 2 restart
./bin/delayed_job status # 起動確認