资源:
terminal
brew install redis redis-server /usr/local/etc/redis.conf bundle exec sidekiq bundle exec sidekiq -q high,5 default
Gemfile
gem 'sidekiq' gem 'sinatra', require: false gem 'slim'
snippets_controller.rb
PygmentsWorker.perform_async(@snippet.id) # PygmentsWorker.perform_in(1.hour, @snippet.id)
app/workers/pygments_worker.rb
class PygmentsWorker include Sidekiq::Worker sidekiq_options queue: "high" # sidekiq_options retry: false def perform(snippet_id) snippet = Snippet.find(snippet_id) uri = URI.parse("http://pygments.appspot.com/") request = Net::HTTP.post_form(uri, lang: snippet.language, code: snippet.plain_code) snippet.update_attribute(:highlighted_code, request.body) end end
routes.rb
require 'sidekiq/web' # ... mount Sidekiq::Web, at: '/sidekiq'