牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Rails3 で delayed_job を利用して非同期でのメール送信メモ

(Rails3.2.11)

Installation

Gemfile
gem 'delayed_job_active_record'
shell
bundle install
rails generate delayed_job:active_record
rake db:migrate

確認用メーラー作成

rails g user_mailer send_mail
config/environments/development.rb

一応設定

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
  config.action_mailer.delivery_method = :test

Running Jobs

rake jobs:work

止める時は
CTRL-C
もしくは
rake jobs:workoff

試してみる

ちなみに、メーラーに『delay』をつける時は『deliver』を取るcollectiveidea/delayed_job · GitHub

  • 普通にメールする時
    • UserMailer.send_mail.deliver
  • delay する時
    • UserMailer.delay.send_mail
rails console
UserMailer.delay.send_mail

時間差で動作させたい時にこんな書き方もある

UserMailer.delay({:run_at => 1.minutes.from_now}).send_mail