forked from fedi/mastodon
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 '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
|
||||||
|
|
Loading…
Reference in a new issue