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 件のコメント:
コメントを投稿