resque-integration 3.8.0 → 3.8.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -165,12 +165,12 @@ module Resque
165
165
  end
166
166
 
167
167
  # Returns true if resque job is in locked state
168
- #
169
- # Returns Boolean
170
168
  def locked?(*args)
171
- redis = ::Resque.redis
172
-
173
- redis.respond_to?(:exists?) ? redis.exists?(lock_id(*args)) : 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
174
174
  end
175
175
 
176
176
  # Dequeue unique job
@@ -1,5 +1,5 @@
1
1
  module Resque
2
2
  module Integration
3
- VERSION = '3.8.0'.freeze
3
+ VERSION = '3.8.2'.freeze
4
4
  end
5
5
  end
@@ -28,8 +28,6 @@ Gem::Specification.new do |gem|
28
28
  gem.add_runtime_dependency 'multi_json'
29
29
  gem.add_runtime_dependency 'rake'
30
30
 
31
- gem.add_runtime_dependency 'redis'
32
-
33
31
  gem.add_development_dependency 'bundler'
34
32
  gem.add_development_dependency 'rspec', '~> 2.14'
35
33
  gem.add_development_dependency 'rspec-its'
@@ -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.0
4
+ version: 3.8.2
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-19 00:00:00.000000000 Z
12
+ date: 2024-01-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: resque
@@ -165,20 +165,6 @@ dependencies:
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
- - !ruby/object:Gem::Dependency
169
- name: redis
170
- requirement: !ruby/object:Gem::Requirement
171
- requirements:
172
- - - ">="
173
- - !ruby/object:Gem::Version
174
- version: '0'
175
- type: :runtime
176
- prerelease: false
177
- version_requirements: !ruby/object:Gem::Requirement
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- version: '0'
182
168
  - !ruby/object:Gem::Dependency
183
169
  name: bundler
184
170
  requirement: !ruby/object:Gem::Requirement
@@ -306,6 +292,7 @@ files:
306
292
  - Appraisals
307
293
  - CHANGELOG.md
308
294
  - Gemfile
295
+ - Gemfile.lock
309
296
  - README.md
310
297
  - Rakefile
311
298
  - app/assets/javascripts/standalone/progress_bar.js
@@ -320,6 +307,14 @@ files:
320
307
  - docker-compose.development.yml
321
308
  - docker-compose.drone.yml
322
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
323
318
  - lib/generators/resque/integration/install/install_generator.rb
324
319
  - lib/resque-integration.rb
325
320
  - lib/resque/integration.rb
@@ -386,8 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
386
381
  - !ruby/object:Gem::Version
387
382
  version: '0'
388
383
  requirements: []
389
- rubyforge_project:
390
- rubygems_version: 2.6.1
384
+ rubygems_version: 3.0.3
391
385
  signing_key:
392
386
  specification_version: 4
393
387
  summary: Seamless integration of resque with resque-progress and resque-lock