Resque
Resqus: git://github.com/defunkt/resque.git
railscastsから
redisをインストールし、redisを起動します.
プロジェクトにredisを構成し、config/でresqueを新規作成します.yml
config/initializers/の下にresqueを新規作成します.rb
Rakefileに追加
railsのプロジェクトにresque、Gemfileにgemを追加
プロジェクトのlib/task/の下にファイルを新規作成する:resque.rake
appの下でフォルダworkersを新規作成し、ファイルsnipper_を新規作成highlighter.rb
非同期タスクが必要なコードに類似のコードを追加
resque-webを開く
resqueタスクの実行
resque-webをプロジェクトにバインドroutes.rbに加える
これにより、プロジェクト内でルーティング/resqueでresque-webにアクセスでき、アクセスパスワードを設定でき、config/initializersでresque_を新規作成できます.auth.rbファイル
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