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 endapp/controllers/users.controller.rb
Queueに"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 件のコメント:
コメントを投稿