Resque


Resqus: git://github.com/defunkt/resque.git
railscastsから
redisをインストールし、redisを起動します.
sudo redis-server /etc/redis.conf





 
プロジェクトにredisを構成し、config/でresqueを新規作成します.yml
defaults: &defaults
  host: localhost
    port: 6379

  development:
      <<: *defaults

  test:
      <<: *defaults

  staging:
      <<: *defaults

  production:
      <<: *defaults


config/initializers/の下にresqueを新規作成します.rb
rails_env = ENV['RAILS_ENV'] || 'development'

resque_config = YAML.load_file(rails_root + '/config/resque.yml')
Resque.redis = resque_config[rails_env]


 
Rakefileに追加
require 'resque/tasks'

 
railsのプロジェクトにresque、Gemfileにgemを追加
gem 'resque', :require => 'resque/server'





 
プロジェクトのlib/task/の下にファイルを新規作成する:resque.rake
require 'resqus/tasks'

task "resque:setup" => :environment





 
appの下でフォルダworkersを新規作成し、ファイルsnipper_を新規作成highlighter.rb
class SnippetHighlighter
   @queue = :snippets_queue
   def self.perform(snippet_id)
        snippet = Snippet.find(snippet_id)
        .........
    end 
end





 
 
非同期タスクが必要なコードに類似のコードを追加
Resque.enqueue(SinppetHighlighter, snippet.id)





 
resque-webを開く
resque-web





 
resqueタスクの実行
rake resque:work QUEUE='*'





resque-webをプロジェクトにバインドroutes.rbに加える
mount Resque::Server, :at => '/resque'





これにより、プロジェクト内でルーティング/resqueでresque-webにアクセスでき、アクセスパスワードを設定でき、config/initializersでresque_を新規作成できます.auth.rbファイル
Resque::Server.use(Rack::Auth::Basic) do |user, password|
     password == 'secret'
end