Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,4 @@ rvm:
- 2.2.7
- 2.3.5
- 2.4.2
- 2.5
2 changes: 0 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ group :development do
gem 'pry'
gem 'pry-byebug', :platforms => [:ruby_20, :ruby_21]
gem 'pry-stack_explorer'
gem 'rake'
gem 'rspec'
gem 'rspec-fire'
gem 'rubocop'
gem 'simplecov'
Expand Down
167 changes: 0 additions & 167 deletions Gemfile.lock

This file was deleted.

24 changes: 17 additions & 7 deletions lib/qless/subscriber.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,18 +29,28 @@ def start
queue = ::Queue.new

@thread = Thread.start do
@listener_redis.subscribe(@channel, @my_channel) do |on|
on.subscribe do |channel|
queue.push(:subscribed) if channel == @channel
end
begin
@listener_redis.subscribe(@channel, @my_channel) do |on|
on.subscribe do |channel|
# insert nil into the queue to indicate we've
# successfully subscribed
queue << nil if channel == @channel
end

on.message do |channel, message|
handle_message(channel, message)
on.message do |channel, message|
handle_message(channel, message)
end
end
# Watch for any exceptions so we don't block forever if
# subscribing to the channel fails
rescue Exception => e
queue << e
end
end

queue.pop
if (exception = queue.pop)
raise exception
end
end

def stop
Expand Down
3 changes: 3 additions & 0 deletions lib/qless/worker/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@ def on_current_job_lock_lost(&block)
end

def listen_for_lost_lock
# Ensure we always have an array
# for the ensure block
subscribers = []
subscribers = uniq_clients.map do |client|
Subscriber.start(client, "ql:w:#{client.worker_name}", log: @log) do |_, message|
if message['event'] == 'lock_lost'
Expand Down
16 changes: 9 additions & 7 deletions qless.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,16 @@ language-specific extension will also remain up to date.
s.test_files = s.files.grep(/^(test|spec|features)\//)
s.require_paths = ['lib']

s.add_dependency 'metriks', '~> 0.9'
s.add_dependency 'metriks', '>= 0.9'
s.add_dependency 'redis', ['>= 2.2', '< 4.0.0.rc1']
s.add_dependency 'rusage', '~> 0.2.0'
s.add_dependency 'sentry-raven', '~> 0.15.6'
s.add_dependency 'rusage', '>= 0.2.0'
s.add_dependency 'sentry-raven', '>= 0.15.6'
s.add_dependency 'sinatra', ['>= 1.3', '< 2.1']
s.add_dependency 'statsd-ruby', '~> 1.3'
s.add_dependency 'thin', '~> 1.6'
s.add_dependency 'thor', '~> 0.19.1'
s.add_dependency 'vegas', '~> 0.1.11'
s.add_dependency 'statsd-ruby', '>= 1.3'
s.add_dependency 'thin', '>= 1.6'
s.add_dependency 'thor', '>= 0.19.1'
s.add_dependency 'vegas', '>= 0.1.11'

s.add_development_dependency 'rake', '~> 10.1'
s.add_development_dependency 'rspec', '~> 2.14'
end