Adding Sidekiq for background processing (firstly just of mailers)
This commit is contained in:
		
							
								
								
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Gemfile
									
									
									
									
									
								
							| @@ -37,6 +37,8 @@ gem 'simple_form' | |||||||
| gem 'will_paginate', '~> 3.0.6' | gem 'will_paginate', '~> 3.0.6' | ||||||
| gem 'rack-attack' | gem 'rack-attack' | ||||||
| gem 'turbolinks', '~> 5.0.0.beta' | gem 'turbolinks', '~> 5.0.0.beta' | ||||||
|  | gem 'sidekiq' | ||||||
|  | gem 'sinatra', :require => nil | ||||||
|  |  | ||||||
| group :development, :test do | group :development, :test do | ||||||
|   gem 'rspec-rails' |   gem 'rspec-rails' | ||||||
|   | |||||||
							
								
								
									
										13
									
								
								Gemfile.lock
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								Gemfile.lock
									
									
									
									
									
								
							| @@ -60,6 +60,7 @@ GEM | |||||||
|       execjs |       execjs | ||||||
|     coffee-script-source (1.10.0) |     coffee-script-source (1.10.0) | ||||||
|     concurrent-ruby (1.0.1) |     concurrent-ruby (1.0.1) | ||||||
|  |     connection_pool (2.2.0) | ||||||
|     crack (0.4.3) |     crack (0.4.3) | ||||||
|       safe_yaml (~> 1.0.0) |       safe_yaml (~> 1.0.0) | ||||||
|     debug_inspector (0.0.2) |     debug_inspector (0.0.2) | ||||||
| @@ -188,6 +189,8 @@ GEM | |||||||
|       rack |       rack | ||||||
|     rack-mini-profiler (0.9.9.2) |     rack-mini-profiler (0.9.9.2) | ||||||
|       rack (>= 1.2.0) |       rack (>= 1.2.0) | ||||||
|  |     rack-protection (1.5.3) | ||||||
|  |       rack | ||||||
|     rack-test (0.6.3) |     rack-test (0.6.3) | ||||||
|       rack (>= 1.0) |       rack (>= 1.0) | ||||||
|     rails (4.2.5.2) |     rails (4.2.5.2) | ||||||
| @@ -271,6 +274,10 @@ GEM | |||||||
|       json (~> 1.7, >= 1.7.7) |       json (~> 1.7, >= 1.7.7) | ||||||
|       rdoc (~> 4.0) |       rdoc (~> 4.0) | ||||||
|     sexp_processor (4.7.0) |     sexp_processor (4.7.0) | ||||||
|  |     sidekiq (4.1.1) | ||||||
|  |       concurrent-ruby (~> 1.0) | ||||||
|  |       connection_pool (~> 2.2, >= 2.2.0) | ||||||
|  |       redis (~> 3.2, >= 3.2.1) | ||||||
|     simple_form (3.2.1) |     simple_form (3.2.1) | ||||||
|       actionpack (> 4, < 5.1) |       actionpack (> 4, < 5.1) | ||||||
|       activemodel (> 4, < 5.1) |       activemodel (> 4, < 5.1) | ||||||
| @@ -279,6 +286,10 @@ GEM | |||||||
|       json (~> 1.8) |       json (~> 1.8) | ||||||
|       simplecov-html (~> 0.10.0) |       simplecov-html (~> 0.10.0) | ||||||
|     simplecov-html (0.10.0) |     simplecov-html (0.10.0) | ||||||
|  |     sinatra (1.4.7) | ||||||
|  |       rack (~> 1.5) | ||||||
|  |       rack-protection (~> 1.4) | ||||||
|  |       tilt (>= 1.3, < 3) | ||||||
|     slop (3.6.0) |     slop (3.6.0) | ||||||
|     sprockets (3.5.2) |     sprockets (3.5.2) | ||||||
|       concurrent-ruby (~> 1.0) |       concurrent-ruby (~> 1.0) | ||||||
| @@ -362,8 +373,10 @@ DEPENDENCIES | |||||||
|   rubocop |   rubocop | ||||||
|   sass-rails (~> 5.0) |   sass-rails (~> 5.0) | ||||||
|   sdoc (~> 0.4.0) |   sdoc (~> 0.4.0) | ||||||
|  |   sidekiq | ||||||
|   simple_form |   simple_form | ||||||
|   simplecov |   simplecov | ||||||
|  |   sinatra | ||||||
|   therubyracer |   therubyracer | ||||||
|   turbolinks (~> 5.0.0.beta) |   turbolinks (~> 5.0.0.beta) | ||||||
|   uglifier (>= 1.3.0) |   uglifier (>= 1.3.0) | ||||||
|   | |||||||
| @@ -28,6 +28,8 @@ module Mastodon | |||||||
|     config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb') |     config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb') | ||||||
|     config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')] |     config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')] | ||||||
|  |  | ||||||
|  |     config.active_job.queue_adapter = :sidekiq | ||||||
|  |  | ||||||
|     config.to_prepare do |     config.to_prepare do | ||||||
|       Doorkeeper::ApplicationsController.layout           'dashboard' |       Doorkeeper::ApplicationsController.layout           'dashboard' | ||||||
|       Doorkeeper::AuthorizedApplicationsController.layout 'dashboard' |       Doorkeeper::AuthorizedApplicationsController.layout 'dashboard' | ||||||
|   | |||||||
							
								
								
									
										11
									
								
								config/initializers/sidekiq.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								config/initializers/sidekiq.rb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | |||||||
|  | redis_conn = proc { | ||||||
|  |   $redis.dup | ||||||
|  | } | ||||||
|  |  | ||||||
|  | Sidekiq.configure_server do |config| | ||||||
|  |   config.redis = ConnectionPool.new(size: 5, &redis_conn) | ||||||
|  | end | ||||||
|  |  | ||||||
|  | Sidekiq.configure_client do |config| | ||||||
|  |   config.redis = ConnectionPool.new(size: 25, &redis_conn) | ||||||
|  | end | ||||||
| @@ -1,4 +1,10 @@ | |||||||
|  | require 'sidekiq/web' | ||||||
|  |  | ||||||
| Rails.application.routes.draw do | Rails.application.routes.draw do | ||||||
|  |   authenticate :user do | ||||||
|  |     mount Sidekiq::Web => '/sidekiq' | ||||||
|  |   end | ||||||
|  |  | ||||||
|   use_doorkeeper do |   use_doorkeeper do | ||||||
|     controllers applications: 'oauth/applications' |     controllers applications: 'oauth/applications' | ||||||
|   end |   end | ||||||
|   | |||||||
| @@ -4,8 +4,11 @@ services: | |||||||
|     image: postgres |     image: postgres | ||||||
|   redis: |   redis: | ||||||
|     image: redis |     image: redis | ||||||
|   web: |   app: | ||||||
|     build: . |     build: . | ||||||
|  |     env_file: .env.production | ||||||
|  |   web: | ||||||
|  |     extends: app | ||||||
|     command: bundle exec rails s -p 3000 -b '0.0.0.0' |     command: bundle exec rails s -p 3000 -b '0.0.0.0' | ||||||
|     ports: |     ports: | ||||||
|       - "3000:3000" |       - "3000:3000" | ||||||
| @@ -15,4 +18,11 @@ services: | |||||||
|     volumes: |     volumes: | ||||||
|       - ./public/assets:/mastodon/public/assets |       - ./public/assets:/mastodon/public/assets | ||||||
|       - ./public/system:/mastodon/public/system |       - ./public/system:/mastodon/public/system | ||||||
|     env_file: .env.production |   sidekiq: | ||||||
|  |     extends: app | ||||||
|  |     command: bundle exec sidekiq -q default -q mailers | ||||||
|  |     depends_on: | ||||||
|  |       - db | ||||||
|  |       - redis | ||||||
|  |     volumes: | ||||||
|  |       - ./public/system:/mastodon/public/system | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user