mirror of
https://github.com/deanpcmad/sidekiq-limit_fetch.git
synced 2022-11-09 13:54:36 -05:00
Merge pull request #60 from gazay/wo_celluloid
Prepare for Sidekiq v4.0.0
This commit is contained in:
commit
070a72a8c4
7 changed files with 31 additions and 8 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
|||
Gemfile.lock
|
||||
pkg/
|
||||
.bundle/
|
||||
|
|
2
Gemfile
2
Gemfile
|
@ -1,4 +1,4 @@
|
|||
source 'https://rubygems.org'
|
||||
gemspec
|
||||
|
||||
gem 'sidekiq', github: 'mperham/sidekiq'
|
||||
gem 'sidekiq', github: 'mperham/sidekiq', branch: 'internal_rewrite'
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
require 'sidekiq'
|
||||
require 'sidekiq/fetch'
|
||||
require 'sidekiq/util'
|
||||
require 'sidekiq/api'
|
||||
require 'forwardable'
|
||||
|
@ -17,13 +18,19 @@ class Sidekiq::LimitFetch
|
|||
include Redis
|
||||
Sidekiq.options[:fetch] = self
|
||||
|
||||
TIMEOUT = \
|
||||
if Sidekiq::VERSION < '4.0.0'
|
||||
Sidekiq::Fetcher::TIMEOUT
|
||||
else
|
||||
Sidekiq::BasicFetch::TIMEOUT
|
||||
end
|
||||
|
||||
def self.bulk_requeue(*args)
|
||||
Sidekiq::BasicFetch.bulk_requeue *args
|
||||
end
|
||||
|
||||
def initialize(options)
|
||||
@queues = Queues.new options.merge(namespace: determine_namespace)
|
||||
Global::Monitor.start! @queues
|
||||
end
|
||||
|
||||
def retrieve_work
|
||||
|
@ -34,7 +41,7 @@ class Sidekiq::LimitFetch
|
|||
private
|
||||
|
||||
def fetch_message
|
||||
queue, _ = redis_brpop *@queues.acquire, Sidekiq::Fetcher::TIMEOUT
|
||||
queue, _ = redis_brpop *@queues.acquire, TIMEOUT
|
||||
ensure
|
||||
@queues.release_except queue
|
||||
end
|
||||
|
|
|
@ -3,8 +3,8 @@ module Sidekiq::LimitFetch::Redis
|
|||
|
||||
def nonblocking_redis
|
||||
redis do |redis|
|
||||
# Celluloid 0.16 broke this method
|
||||
if Celluloid::VERSION.to_f >= 0.16
|
||||
# Celluloid 0.16 broke this method + yield redis
|
||||
if Sidekiq::VERSION >= '4.0.0' || Celluloid::VERSION.to_f >= 0.16
|
||||
yield redis
|
||||
else
|
||||
# prevent blocking of fetcher
|
||||
|
|
14
lib/sidekiq/manager.rb
Normal file
14
lib/sidekiq/manager.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
module Sidekiq
|
||||
class Manager
|
||||
|
||||
def start
|
||||
queues = Sidekiq::LimitFetch::Queues.new options.merge(namespace: Sidekiq::LimitFetch::Redis.determine_namespace)
|
||||
Sidekiq::LimitFetch::Global::Monitor.start! queues
|
||||
|
||||
@workers.each do |x|
|
||||
x.start
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|||
gem.test_files = gem.files.grep %r{^spec/}
|
||||
gem.require_paths = %w(lib)
|
||||
|
||||
gem.add_dependency 'sidekiq', '>= 2.6.5', '< 4.0'
|
||||
gem.add_dependency 'sidekiq', '>= 2.6.5'
|
||||
gem.add_development_dependency 'rspec', '~> 3.2.0'
|
||||
gem.add_development_dependency 'rake'
|
||||
end
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
require 'sidekiq/limit_fetch'
|
||||
require 'celluloid/autostart'
|
||||
require 'sidekiq/version'
|
||||
require 'celluloid/autostart' if Sidekiq::VERSION < '4.0.0'
|
||||
require 'sidekiq/fetch'
|
||||
require 'sidekiq/limit_fetch'
|
||||
|
||||
Sidekiq.logger = nil
|
||||
Sidekiq.redis = { namespace: ENV['namespace'] }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue