resque-integration 3.8.1 → 3.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -20,7 +20,7 @@ namespace :resque do
20
20
  if god_stopped?
21
21
  Rake::Task['resque:start'].invoke
22
22
  else
23
- puts `#{god} stop resque && #{god} load #{Resque.config.config_file} stop && #{god} start resque`
23
+ puts `#{god} stop resque && #{god} load #{Resque.config.config_file} && #{god} start resque`
24
24
  end
25
25
  end
26
26
 
@@ -144,7 +144,7 @@ module Resque
144
144
 
145
145
  # When job is dequeued we should remove lock
146
146
  def after_dequeue_lock(_meta_id, *args)
147
- unlock(*args) unless args.empty?
147
+ unlock(*args)
148
148
  end
149
149
 
150
150
  # Fail metadata if dequeue succeed
@@ -166,7 +166,11 @@ module Resque
166
166
 
167
167
  # Returns true if resque job is in locked state
168
168
  def locked?(*args)
169
- ::Resque.redis.exists(lock_id(*args))
169
+ if Gem::Version.new(Redis::VERSION) < Gem::Version.new('4.3')
170
+ ::Resque.redis.exists(lock_id(*args))
171
+ else
172
+ ::Resque.redis.exists?(lock_id(*args))
173
+ end
170
174
  end
171
175
 
172
176
  # Dequeue unique job
@@ -1,5 +1,5 @@
1
1
  module Resque
2
2
  module Integration
3
- VERSION = '3.8.1'.freeze
3
+ VERSION = '3.9.0'.freeze
4
4
  end
5
5
  end
@@ -88,7 +88,7 @@ describe Resque::Integration::Unique, '#dequeue' do
88
88
 
89
89
  @queue = :queue2
90
90
 
91
- def self.execute(x)
91
+ def self.execute(*params)
92
92
  sleep 0.1
93
93
  end
94
94
  end
@@ -105,14 +105,24 @@ describe Resque::Integration::Unique, '#dequeue' do
105
105
  meta.should be_failed
106
106
  end
107
107
 
108
+ it 'dequeues and unlocks job without args if job is not in work now' do
109
+ JobDequeueTest.enqueue
110
+ JobDequeueTest.should be_enqueued
111
+
112
+ JobDequeueTest.dequeue
113
+ JobDequeueTest.should_not be_enqueued
114
+ JobDequeueTest.should_not be_locked
115
+
116
+ meta = JobDequeueTest.get_meta(JobDequeueTest.meta_id)
117
+ meta.should be_failed
118
+ end
119
+
108
120
  it 'does not dequeue jobs in progress' do
109
121
  meta = JobDequeueTest.enqueue(1)
110
122
 
111
123
  job = Resque.reserve(:queue2)
112
124
 
113
- worker = Thread.new {
114
- job.perform
115
- }
125
+ worker = Thread.new { job.perform }
116
126
 
117
127
  sleep 0.01 # give a worker some time to start
118
128
  meta.reload!
@@ -124,6 +134,24 @@ describe Resque::Integration::Unique, '#dequeue' do
124
134
 
125
135
  worker.join
126
136
  end
137
+
138
+ it 'does not dequeue jobs without args in progress' do
139
+ meta = JobDequeueTest.enqueue
140
+
141
+ job = Resque.reserve(:queue2)
142
+
143
+ worker = Thread.new { job.perform }
144
+
145
+ sleep 0.01 # give a worker some time to start
146
+ meta.reload!
147
+ meta.should be_working
148
+
149
+ JobDequeueTest.dequeue
150
+ JobDequeueTest.should be_locked
151
+ JobDequeueTest.should be_enqueued
152
+
153
+ worker.join
154
+ end
127
155
  end
128
156
 
129
157
  describe Resque::Integration::Unique, '#on_failure_retry' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resque-integration
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.8.1
4
+ version: 3.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexei Mikhailov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-08-20 00:00:00.000000000 Z
12
+ date: 2026-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: resque
@@ -292,6 +292,7 @@ files:
292
292
  - Appraisals
293
293
  - CHANGELOG.md
294
294
  - Gemfile
295
+ - Gemfile.lock
295
296
  - README.md
296
297
  - Rakefile
297
298
  - app/assets/javascripts/standalone/progress_bar.js
@@ -306,6 +307,14 @@ files:
306
307
  - docker-compose.development.yml
307
308
  - docker-compose.drone.yml
308
309
  - docker-compose.yml
310
+ - gemfiles/rails4.2.gemfile
311
+ - gemfiles/rails4.2.gemfile.lock
312
+ - gemfiles/rails5.0.gemfile
313
+ - gemfiles/rails5.0.gemfile.lock
314
+ - gemfiles/rails5.1.gemfile
315
+ - gemfiles/rails5.1.gemfile.lock
316
+ - gemfiles/rails5.2.gemfile
317
+ - gemfiles/rails5.2.gemfile.lock
309
318
  - lib/generators/resque/integration/install/install_generator.rb
310
319
  - lib/resque-integration.rb
311
320
  - lib/resque/integration.rb
@@ -372,8 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
372
381
  - !ruby/object:Gem::Version
373
382
  version: '0'
374
383
  requirements: []
375
- rubyforge_project:
376
- rubygems_version: 2.6.1
384
+ rubygems_version: 3.0.3
377
385
  signing_key:
378
386
  specification_version: 4
379
387
  summary: Seamless integration of resque with resque-progress and resque-lock