delayed_jobは何もしなければ、workerの手が空いたときにジョブを実行してくれるが、XX分後、などの時間を指定したい場合、handle_asynchronouslyメソッドを読んで、:run_atを指定すればよいらしい。
def in_the_future # Some other code end # 5.minutes.from_now will be evaluated when in_the_future is called handle_asynchronously :in_the_future, :run_at => Proc.new { 5.minutes.from_now }
参考:collectiveidea/delayed_job · GitHub
追記:
mailerのメソッドで試したら、うまく行かなかったので、モデルのメソッドでmailerを呼ぶ処理をラップして、モデルのメソッドに対して時間指定を行うと正しく動作した。