# Gemfile gem 'sidekiq'





# config/application.rb module BackgroundJobsWithSidekiq class Application < Rails::Application config.active_job.queue_adapter = :sidekiq # config.active_job.queue_adapter = Rails.env.production? ? :sidekiq : :async end end





# config/initializers/sidekiq.rb Sidekiq.configure_server do |config| config.redis = { url: 'redis://localhost:6379/0' } end Sidekiq.configure_client do |config| config.redis = { url: 'redis://localhost:6379/0' } end





# config/routes.rb Rails.application.routes.draw do require 'sidekiq/web' mount Sidekiq::Web => '/sidekiq' get 'users/create_random' get 'users/destroy_all' root to: 'users#index' end





# users_controller.rb def create_random GenerateRandomUserJob.perform_later redirect_to root_path end





# app/jobs/generate_random_user_job.rb # rails g job generate_random_user class GenerateRandomUserJob < ApplicationJob queue_as :default def perform(*args) user = User.new user.first_name = Faker::Name.first_name user.last_name = Faker::Name.last_name user.email = Faker::Internet.email user.save! sleep 2 end end





# Terminal sidekiq 2016-12-19T02:45:23.797Z 52134 TID-oxnqxvyn8 INFO: Booting Sidekiq 4.2.7 with redis options {:url=>"redis://localhost:6379/0"} m, `$b .ss, $$: .,d$ `$$P,d$P' .,md$P"' ,$$$$$bmmd$$$P^' .d$$$$$$$$$$P' $$^' `"^$$$' ____ _ _ _ _ $: ,$$: / ___|(_) __| | ___| | _(_) __ _ `b :$$ \___ \| |/ _` |/ _ \ |/ / |/ _` | $$: ___) | | (_| | __/ <| | (_| | $$ |____/|_|\__,_|\___|_|\_\_|\__, | .d$$ |_| 2016-12-19T02:45:24.203Z 52134 TID-oxnqxvyn8 INFO: Running in ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-darwin16] 2016-12-19T02:45:24.203Z 52134 TID-oxnqxvyn8 INFO: See LICENSE and the LGPL-3.0 for licensing details. 2016-12-19T02:45:24.204Z 52134 TID-oxnqxvyn8 INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org 2016-12-19T02:45:24.218Z 52134 TID-oxnqxvyn8 INFO: Starting processing, hit Ctrl-C to stop