Commit cd4a55c
Changed files (6)
config/initializers/timeout.rb
@@ -0,0 +1,1 @@
+Rack::Timeout.timeout = 20 # seconds
\ No newline at end of file
config/puma.rb
@@ -0,0 +1,15 @@
+workers Integer(ENV['WEB_CONCURRENCY'] || 2)
+threads_count = Integer(ENV['MAX_THREADS'] || 5)
+threads threads_count, threads_count
+
+preload_app!
+
+rackup DefaultRackup
+port ENV['PORT'] || 3000
+environment ENV['RACK_ENV'] || 'development'
+
+on_worker_boot do
+ # Worker specific setup for Rails 4.1+
+ # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
+ ActiveRecord::Base.establish_connection
+end
\ No newline at end of file
config/unicorn.rb
@@ -1,26 +0,0 @@
-worker_processes 8
-timeout 15
-preload_app true
-
-before_fork do |server, worker|
- Signal.trap 'TERM' do
- puts 'Unicorn master intercepting TERM and sending myself QUIT instead'
- Process.kill 'QUIT', Process.pid
- end
-
- if defined?(ActiveRecord::Base)
- ActiveRecord::Base.connection.disconnect!
- Rails.logger.info('Disconnected from ActiveRecord')
- end
-end
-
-after_fork do |server, worker|
- Signal.trap 'TERM' do
- puts 'Unicorn worker intercepting TERM and doing nothing. Wait for master to sent QUIT'
- end
-
- if defined?(ActiveRecord::Base)
- ActiveRecord::Base.establish_connection
- Rails.logger.info('Connected to ActiveRecord')
- end
-end
Gemfile
@@ -29,8 +29,9 @@ gem 'coveralls', require: false
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
-# Use Unicorn as the app server
-gem 'unicorn'
+# Use Puma as the app server
+gem 'puma'
+gem 'rack-timeout'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
Gemfile.lock
@@ -116,7 +116,6 @@ GEM
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
json (1.8.1)
- kgio (2.9.2)
loofah (2.0.1)
nokogiri (>= 1.5.9)
mail (2.6.3)
@@ -134,9 +133,12 @@ GEM
cliver (~> 0.3.1)
multi_json (~> 1.0)
websocket-driver (>= 0.2.0)
+ puma (2.11.1)
+ rack (>= 1.1, < 2.0)
rack (1.6.0)
rack-test (0.6.2)
rack (>= 1.0)
+ rack-timeout (0.2.0)
rails (4.2.0)
actionmailer (= 4.2.0)
actionpack (= 4.2.0)
@@ -166,7 +168,6 @@ GEM
activesupport (= 4.2.0)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
- raindrops (0.13.0)
rake (10.4.2)
rdoc (4.2.0)
json (~> 1.4)
@@ -230,10 +231,6 @@ GEM
uglifier (2.6.0)
execjs (>= 0.3.0)
json (>= 1.8.0)
- unicorn (4.8.3)
- kgio (~> 2.6)
- rack
- raindrops (~> 0.7)
web-console (2.0.0)
activemodel (~> 4.0)
binding_of_caller (>= 0.7.2)
@@ -265,6 +262,8 @@ DEPENDENCIES
jquery-rails
pg
poltergeist
+ puma
+ rack-timeout
rails (= 4.2.0)
rails_12factor
rspec-rails
@@ -273,5 +272,4 @@ DEPENDENCIES
spring
turbolinks
uglifier (>= 1.3.0)
- unicorn
web-console (~> 2.0)
Procfile
@@ -1,1 +1,1 @@
-web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
+web: bundle exec puma -C config/puma.rb
\ No newline at end of file