Adding Sidekiq for background processing (firstly just of mailers)
This commit is contained in:
		
							parent
							
								
									a08e724476
								
							
						
					
					
						commit
						42dcb0d4cb
					
				
							
								
								
									
										2
									
								
								Gemfile
								
								
								
								
							
							
						
						
									
										2
									
								
								Gemfile
								
								
								
								
							| 
						 | 
				
			
			@ -37,6 +37,8 @@ gem 'simple_form'
 | 
			
		|||
gem 'will_paginate', '~> 3.0.6'
 | 
			
		||||
gem 'rack-attack'
 | 
			
		||||
gem 'turbolinks', '~> 5.0.0.beta'
 | 
			
		||||
gem 'sidekiq'
 | 
			
		||||
gem 'sinatra', :require => nil
 | 
			
		||||
 | 
			
		||||
group :development, :test do
 | 
			
		||||
  gem 'rspec-rails'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										13
									
								
								Gemfile.lock
								
								
								
								
							
							
						
						
									
										13
									
								
								Gemfile.lock
								
								
								
								
							| 
						 | 
				
			
			@ -60,6 +60,7 @@ GEM
 | 
			
		|||
      execjs
 | 
			
		||||
    coffee-script-source (1.10.0)
 | 
			
		||||
    concurrent-ruby (1.0.1)
 | 
			
		||||
    connection_pool (2.2.0)
 | 
			
		||||
    crack (0.4.3)
 | 
			
		||||
      safe_yaml (~> 1.0.0)
 | 
			
		||||
    debug_inspector (0.0.2)
 | 
			
		||||
| 
						 | 
				
			
			@ -188,6 +189,8 @@ GEM
 | 
			
		|||
      rack
 | 
			
		||||
    rack-mini-profiler (0.9.9.2)
 | 
			
		||||
      rack (>= 1.2.0)
 | 
			
		||||
    rack-protection (1.5.3)
 | 
			
		||||
      rack
 | 
			
		||||
    rack-test (0.6.3)
 | 
			
		||||
      rack (>= 1.0)
 | 
			
		||||
    rails (4.2.5.2)
 | 
			
		||||
| 
						 | 
				
			
			@ -271,6 +274,10 @@ GEM
 | 
			
		|||
      json (~> 1.7, >= 1.7.7)
 | 
			
		||||
      rdoc (~> 4.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)
 | 
			
		||||
      actionpack (> 4, < 5.1)
 | 
			
		||||
      activemodel (> 4, < 5.1)
 | 
			
		||||
| 
						 | 
				
			
			@ -279,6 +286,10 @@ GEM
 | 
			
		|||
      json (~> 1.8)
 | 
			
		||||
      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)
 | 
			
		||||
    sprockets (3.5.2)
 | 
			
		||||
      concurrent-ruby (~> 1.0)
 | 
			
		||||
| 
						 | 
				
			
			@ -362,8 +373,10 @@ DEPENDENCIES
 | 
			
		|||
  rubocop
 | 
			
		||||
  sass-rails (~> 5.0)
 | 
			
		||||
  sdoc (~> 0.4.0)
 | 
			
		||||
  sidekiq
 | 
			
		||||
  simple_form
 | 
			
		||||
  simplecov
 | 
			
		||||
  sinatra
 | 
			
		||||
  therubyracer
 | 
			
		||||
  turbolinks (~> 5.0.0.beta)
 | 
			
		||||
  uglifier (>= 1.3.0)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,6 +28,8 @@ module Mastodon
 | 
			
		|||
    config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
 | 
			
		||||
    config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]
 | 
			
		||||
 | 
			
		||||
    config.active_job.queue_adapter = :sidekiq
 | 
			
		||||
 | 
			
		||||
    config.to_prepare do
 | 
			
		||||
      Doorkeeper::ApplicationsController.layout           'dashboard'
 | 
			
		||||
      Doorkeeper::AuthorizedApplicationsController.layout 'dashboard'
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
  authenticate :user do
 | 
			
		||||
    mount Sidekiq::Web => '/sidekiq'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  use_doorkeeper do
 | 
			
		||||
    controllers applications: 'oauth/applications'
 | 
			
		||||
  end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,11 @@ services:
 | 
			
		|||
    image: postgres
 | 
			
		||||
  redis:
 | 
			
		||||
    image: redis
 | 
			
		||||
  web:
 | 
			
		||||
  app:
 | 
			
		||||
    build: .
 | 
			
		||||
    env_file: .env.production
 | 
			
		||||
  web:
 | 
			
		||||
    extends: app
 | 
			
		||||
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
 | 
			
		||||
    ports:
 | 
			
		||||
      - "3000:3000"
 | 
			
		||||
| 
						 | 
				
			
			@ -15,4 +18,11 @@ services:
 | 
			
		|||
    volumes:
 | 
			
		||||
      - ./public/assets:/mastodon/public/assets
 | 
			
		||||
      - ./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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue