Adding rack timeout of 30sec, PuSH jobs moved to push queue so they

can be processed separately
master
Eugen Rochko 8 years ago
parent c0555f2db6
commit cc70f28f19
  1. 1
      Gemfile
  2. 4
      Gemfile.lock
  3. 1
      app/workers/processing_worker.rb
  4. 2
      app/workers/pubsubhubbub/confirmation_worker.rb
  5. 2
      app/workers/pubsubhubbub/delivery_worker.rb
  6. 2
      app/workers/pubsubhubbub/distribution_worker.rb
  7. 1
      app/workers/salmon_worker.rb
  8. 2
      config/environments/production.rb
  9. 1
      config/initializers/timeout.rb
  10. 2
      docker-compose.yml

@ -41,6 +41,7 @@ gem 'simple_form'
gem 'will_paginate'
gem 'rack-attack'
gem 'rack-cors', require: 'rack/cors'
gem 'rack-timeout-puma'
gem 'sidekiq'
gem 'ledermann-rails-settings'
gem 'pg_search'

@ -257,6 +257,9 @@ GEM
rack
rack-test (0.6.3)
rack (>= 1.0)
rack-timeout (0.4.2)
rack-timeout-puma (0.0.1)
rack-timeout (~> 0.2, >= 0.2.0)
rails-dom-testing (2.0.1)
activesupport (>= 4.2.0, < 6.0)
nokogiri (~> 1.6.0)
@ -438,6 +441,7 @@ DEPENDENCIES
rabl
rack-attack
rack-cors
rack-timeout-puma
rails!
rails_12factor
rails_autolink

@ -2,6 +2,7 @@
class ProcessingWorker
include Sidekiq::Worker
sidekiq_options backtrace: true
def perform(account_id, body)

@ -4,6 +4,8 @@ class Pubsubhubbub::ConfirmationWorker
include Sidekiq::Worker
include RoutingHelper
sidekiq_options queue: 'push'
def perform(subscription_id, mode, secret = nil, lease_seconds = nil)
subscription = Subscription.find(subscription_id)
challenge = SecureRandom.hex

@ -4,6 +4,8 @@ class Pubsubhubbub::DeliveryWorker
include Sidekiq::Worker
include RoutingHelper
sidekiq_options queue: 'push'
def perform(subscription_id, payload)
subscription = Subscription.find(subscription_id)
headers = {}

@ -3,6 +3,8 @@
class Pubsubhubbub::DistributionWorker
include Sidekiq::Worker
sidekiq_options queue: 'push'
def perform(stream_entry_id)
stream_entry = StreamEntry.find(stream_entry_id)
account = stream_entry.account

@ -2,6 +2,7 @@
class SalmonWorker
include Sidekiq::Worker
sidekiq_options backtrace: true
def perform(account_id, body)

@ -30,7 +30,7 @@ Rails.application.configure do
# Specifies the header that your server uses for sending files.
# config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
config.force_ssl = false

@ -0,0 +1 @@
Rack::Timeout.timeout = 30

@ -23,7 +23,7 @@ services:
restart: always
build: .
env_file: .env.production
command: bundle exec sidekiq -q default -q mailers
command: bundle exec sidekiq -q default -q mailers -q push
depends_on:
- db
- redis

Loading…
Cancel
Save