From e1b392d3bee83296412d8c1b090bf63f339dd5ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ey=C3=BCp=20Ati=C5=9F?= Date: Sat, 2 Mar 2019 20:15:10 +0300 Subject: [PATCH 1/3] Fix heroku wait time, change it to 30 from 10 (#4117) --- bin/sidekiqload | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/sidekiqload b/bin/sidekiqload index 0186c534..f49cb26b 100755 --- a/bin/sidekiqload +++ b/bin/sidekiqload @@ -65,7 +65,7 @@ def handle_signal(launcher, sig) # http://jira.codehaus.org/browse/JRUBY-4637 raise Interrupt when 'TERM' - # Heroku sends TERM and then waits 10 seconds for process to exit. + # Heroku sends TERM and then waits 30 seconds for process to exit. raise Interrupt when 'TSTP' Sidekiq.logger.info "Received TSTP, no longer accepting new work" From 33aedf62dee55a08474792ce9e34ca5f061874d3 Mon Sep 17 00:00:00 2001 From: Mike Perham Date: Mon, 4 Mar 2019 11:16:58 -0800 Subject: [PATCH 2/3] Allow Sidekiq::Worker#set to be chained --- Changes.md | 3 +- lib/sidekiq/worker.rb | 5 ++++ test/test_client.rb | 51 ---------------------------------- test/test_worker.rb | 64 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 52 deletions(-) create mode 100644 test/test_worker.rb diff --git a/Changes.md b/Changes.md index 654825f7..e6a415b8 100644 --- a/Changes.md +++ b/Changes.md @@ -6,7 +6,8 @@ HEAD --------- - Better handling of malformed job arguments in payload [#4095] -- add back in bootstap's dropdown css component [#4099, urkle] +- Restore bootstap's dropdown css component [#4099, urkle] +- Allow `Sidekiq::Worker#set` to be chained 5.2.5 --------- diff --git a/lib/sidekiq/worker.rb b/lib/sidekiq/worker.rb index 7bfdb307..eb0aaae8 100644 --- a/lib/sidekiq/worker.rb +++ b/lib/sidekiq/worker.rb @@ -46,6 +46,11 @@ module Sidekiq @opts = opts end + def set(options) + @opts.merge!(options) + self + end + def perform_async(*args) @klass.client_push(@opts.merge('args' => args, 'class' => @klass)) end diff --git a/test/test_client.rb b/test/test_client.rb index e51c9ca9..a304e690 100644 --- a/test/test_client.rb +++ b/test/test_client.rb @@ -238,57 +238,6 @@ describe Sidekiq::Client do end end - describe 'Sidekiq::Worker#set' do - class SetWorker - include Sidekiq::Worker - sidekiq_options :queue => :foo, 'retry' => 12 - end - - def setup - Sidekiq.redis {|c| c.flushdb } - end - - it 'can be memoized' do - q = Sidekiq::Queue.new('bar') - assert_equal 0, q.size - set = SetWorker.set(queue: :bar, foo: 'qaaz') - set.perform_async(1) - set.perform_async(1) - set.perform_async(1) - set.perform_async(1) - assert_equal 4, q.size - assert_equal 4, q.map{|j| j['jid'] }.uniq.size - set.perform_in(10, 1) - end - - it 'allows option overrides' do - q = Sidekiq::Queue.new('bar') - assert_equal 0, q.size - assert SetWorker.set(queue: :bar).perform_async(1) - job = q.first - assert_equal 'bar', job['queue'] - assert_equal 12, job['retry'] - end - - it 'handles symbols and strings' do - q = Sidekiq::Queue.new('bar') - assert_equal 0, q.size - assert SetWorker.set('queue' => 'bar', :retry => 11).perform_async(1) - job = q.first - assert_equal 'bar', job['queue'] - assert_equal 11, job['retry'] - - q.clear - assert SetWorker.perform_async(1) - assert_equal 0, q.size - - q = Sidekiq::Queue.new('foo') - job = q.first - assert_equal 'foo', job['queue'] - assert_equal 12, job['retry'] - end - end - describe 'class attribute race conditions' do new_class = -> { Class.new do diff --git a/test/test_worker.rb b/test/test_worker.rb new file mode 100644 index 00000000..0a3542a2 --- /dev/null +++ b/test/test_worker.rb @@ -0,0 +1,64 @@ +require_relative 'helper' + +describe Sidekiq::Worker do + describe '#set' do + + class SetWorker + include Sidekiq::Worker + sidekiq_options :queue => :foo, 'retry' => 12 + end + + def setup + Sidekiq.redis {|c| c.flushdb } + end + + it 'can be memoized' do + q = Sidekiq::Queue.new('bar') + assert_equal 0, q.size + set = SetWorker.set(queue: :bar, foo: 'qaaz') + set.perform_async(1) + set.perform_async(1) + set.perform_async(1) + set.perform_async(1) + assert_equal 4, q.size + assert_equal 4, q.map{|j| j['jid'] }.uniq.size + set.perform_in(10, 1) + end + + it 'allows option overrides' do + q = Sidekiq::Queue.new('bar') + assert_equal 0, q.size + assert SetWorker.set(queue: :bar).perform_async(1) + job = q.first + assert_equal 'bar', job['queue'] + assert_equal 12, job['retry'] + end + + it 'handles symbols and strings' do + q = Sidekiq::Queue.new('bar') + assert_equal 0, q.size + assert SetWorker.set('queue' => 'bar', :retry => 11).perform_async(1) + job = q.first + assert_equal 'bar', job['queue'] + assert_equal 11, job['retry'] + + q.clear + assert SetWorker.perform_async(1) + assert_equal 0, q.size + + q = Sidekiq::Queue.new('foo') + job = q.first + assert_equal 'foo', job['queue'] + assert_equal 12, job['retry'] + end + + it 'allows multiple calls' do + SetWorker.set(queue: :foo).set(bar: 'xyz').perform_async + + q = Sidekiq::Queue.new('foo') + job = q.first + assert_equal 'foo', job['queue'] + assert_equal 'xyz', job['bar'] + end + end +end From 91d76800f6aace27c72183d1de469b4a3213e545 Mon Sep 17 00:00:00 2001 From: Mike Perham Date: Tue, 5 Mar 2019 08:34:03 -0800 Subject: [PATCH 3/3] release --- Ent-Changes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Ent-Changes.md b/Ent-Changes.md index d5ae439a..6538c66b 100644 --- a/Ent-Changes.md +++ b/Ent-Changes.md @@ -4,7 +4,7 @@ Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy. -HEAD +1.8.1 ------------- - Fix excessive lock reclaims with concurrent limiter [#4105]