1
0
Fork 0
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:
Ravil Bayramgalin 2015-10-15 02:31:02 +03:00
commit 070a72a8c4
7 changed files with 31 additions and 8 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
Gemfile.lock
pkg/
.bundle/

View file

@ -1,4 +1,4 @@
source 'https://rubygems.org'
gemspec
gem 'sidekiq', github: 'mperham/sidekiq'
gem 'sidekiq', github: 'mperham/sidekiq', branch: 'internal_rewrite'

View file

@ -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

View file

@ -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
View 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

View file

@ -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

View file

@ -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'] }