Remove timeout middleware and worker option, fixes #862
This commit is contained in:
parent
1b5c16c684
commit
7e094567a5
|
@ -1,3 +1,10 @@
|
|||
2.11.0
|
||||
-----------
|
||||
|
||||
- Remove **timeout** support from `sidekiq_options`. Ruby's timeout
|
||||
is inherently unsafe in a multi-threaded application and was causing
|
||||
stability problems for many. See http://bit.ly/OtYpK
|
||||
|
||||
2.10.1
|
||||
-----------
|
||||
|
||||
|
|
|
@ -7,11 +7,6 @@ require 'sidekiq/redis_connection'
|
|||
require 'sidekiq/util'
|
||||
require 'sidekiq/api'
|
||||
|
||||
require 'sidekiq/extensions/class_methods'
|
||||
require 'sidekiq/extensions/action_mailer'
|
||||
require 'sidekiq/extensions/active_record'
|
||||
require 'sidekiq/rails' if defined?(::Rails::Engine)
|
||||
|
||||
require 'multi_json'
|
||||
|
||||
module Sidekiq
|
||||
|
@ -43,7 +38,7 @@ module Sidekiq
|
|||
# Configuration for Sidekiq server, use like:
|
||||
#
|
||||
# Sidekiq.configure_server do |config|
|
||||
# config.redis = { :namespace => 'myapp', :size => 25, :url => 'redis://myhost:8877/mydb' }
|
||||
# config.redis = { :namespace => 'myapp', :size => 25, :url => 'redis://myhost:8877/0' }
|
||||
# config.server_middleware do |chain|
|
||||
# chain.add MyServerHook
|
||||
# end
|
||||
|
@ -56,7 +51,7 @@ module Sidekiq
|
|||
# Configuration for Sidekiq client, use like:
|
||||
#
|
||||
# Sidekiq.configure_client do |config|
|
||||
# config.redis = { :namespace => 'myapp', :size => 1, :url => 'redis://myhost:8877/mydb' }
|
||||
# config.redis = { :namespace => 'myapp', :size => 1, :url => 'redis://myhost:8877/0' }
|
||||
# end
|
||||
def self.configure_client
|
||||
yield self unless server?
|
||||
|
@ -115,3 +110,9 @@ module Sidekiq
|
|||
end
|
||||
|
||||
end
|
||||
|
||||
require 'sidekiq/extensions/class_methods'
|
||||
require 'sidekiq/extensions/action_mailer'
|
||||
require 'sidekiq/extensions/active_record'
|
||||
require 'sidekiq/rails' if defined?(::Rails::Engine)
|
||||
|
||||
|
|
|
@ -11,9 +11,6 @@ module Sidekiq
|
|||
# UserMailer.delay_until(5.days.from_now).send_welcome_email(new_user)
|
||||
class DelayedMailer
|
||||
include Sidekiq::Worker
|
||||
# I think it's reasonable to assume that emails should take less
|
||||
# than 30 seconds to send.
|
||||
sidekiq_options :timeout => 30
|
||||
|
||||
def perform(yml)
|
||||
(target, method_name, args) = YAML.load(yml)
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
require 'timeout'
|
||||
|
||||
module Sidekiq
|
||||
module Middleware
|
||||
module Server
|
||||
class Timeout
|
||||
|
||||
def call(worker, msg, queue)
|
||||
if msg['timeout'] && msg['timeout'].to_i != 0
|
||||
::Timeout.timeout(msg['timeout'].to_i) do
|
||||
yield
|
||||
end
|
||||
else
|
||||
yield
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -4,7 +4,6 @@ require 'sidekiq/util'
|
|||
require 'sidekiq/middleware/server/active_record'
|
||||
require 'sidekiq/middleware/server/retry_jobs'
|
||||
require 'sidekiq/middleware/server/logging'
|
||||
require 'sidekiq/middleware/server/timeout'
|
||||
|
||||
module Sidekiq
|
||||
##
|
||||
|
@ -20,7 +19,6 @@ module Sidekiq
|
|||
m.add Middleware::Server::Logging
|
||||
m.add Middleware::Server::RetryJobs
|
||||
m.add Middleware::Server::ActiveRecord
|
||||
m.add Middleware::Server::Timeout
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
module Sidekiq
|
||||
VERSION = "2.10.1"
|
||||
VERSION = "2.11.0"
|
||||
end
|
||||
|
|
|
@ -51,11 +51,11 @@ module Sidekiq
|
|||
#
|
||||
# :queue - use a named queue for this Worker, default 'default'
|
||||
# :retry - enable the RetryJobs middleware for this Worker, default *true*
|
||||
# :timeout - timeout the perform method after N seconds, default *nil*
|
||||
# :backtrace - whether to save any error backtrace in the retry payload to display in web UI,
|
||||
# can be true, false or an integer number of lines to save, default *false*
|
||||
def sidekiq_options(opts={})
|
||||
self.sidekiq_options_hash = get_sidekiq_options.merge((opts || {}).stringify_keys)
|
||||
::Sidekiq.logger.warn("#{self.name} - :timeout is unsafe and support has been removed from Sidekiq, see http://bit.ly/OtYpK for details")
|
||||
end
|
||||
|
||||
DEFAULT_OPTIONS = { 'retry' => true, 'queue' => 'default' }
|
||||
|
|
|
@ -99,7 +99,7 @@ class TestClient < MiniTest::Unit::TestCase
|
|||
|
||||
class QueuedWorker
|
||||
include Sidekiq::Worker
|
||||
sidekiq_options :queue => :flimflam, :timeout => 1
|
||||
sidekiq_options :queue => :flimflam
|
||||
end
|
||||
|
||||
it 'enqueues to the named queue' do
|
||||
|
|
Loading…
Reference in New Issue