require 'resque' require 'resque_scheduler' require 'resque_scheduler/server' require 'resque/scheduler' Resque.redis = 'localhost:6379' Resque::Scheduler.dynamic = true
Rakefileに追記
require 'resque_scheduler/tasks'全ての名前のQUEUEを動かす。
queueに入っているものを実行する。
rake environment resque:work QUEUE=*resque_schedulerを動かす
rake resque:schedulerconfig/routes.rb 下の記述を追加
mount Resque::Server, :at => "/resque"
require 'resque_scheduler'
  Test::Application.routes.draw do
    mount Resque::Server, :at => "/resque"
    resources :users do
      collection do 
        post 'send_mail'
        get 'send_mail'
      end
    end
  end
app/controllers/users.controller.rbQueueに"word_analysis"という名前で10秒後に値を追加
require 'resque_scheduler'
require 'resque'
class UsersController < ApplicationController
  def index
    test
    respond_to do |format|
      format.html {render :text => :hello}
    end
  end
  
  def test
    #10秒後にqueueにHelloクラスを追加
    Resque.enqueue_at(10.seconds.from_now, Hello, {:id => 1})
  end
end
class Hello
  @queue = "word_analysis"
  def self.perform(options = {})
    puts options[:id]
  end
end
管理画面
http://localhost:3000/resque/
下のURIにアクセスするとQUEUEにHelloが追加されて10秒後に実行されます。
http://localhost:3000/users
 
0 件のコメント:
コメントを投稿