Skip to content

Commit

Permalink
Address growing pains related to dependency interface changes
Browse files Browse the repository at this point in the history
  • Loading branch information
jzaleski committed Apr 15, 2023
1 parent f53624e commit 3caab64
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 10 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
- 6379:6379
strategy:
matrix:
ruby-version: ['3.0', '2.7', '2.6']
ruby-version: ['3.1', '3.0', '2.7']

steps:
- uses: actions/checkout@v2
Expand Down
6 changes: 1 addition & 5 deletions lib/resque/failure/multiple_with_retry_suppression.rb
Original file line number Diff line number Diff line change
Expand Up @@ -149,11 +149,7 @@ def retrying?
private

def redis_key_exists?(key)
if Resque.redis.respond_to?(:exists?)
Resque.redis.exists?(key)
else
![false, 0].include?(Resque.redis.exists(key) || false)
end
![false, 0].include?(Resque.redis.exists(key) || false)
end
end
end
Expand Down
7 changes: 5 additions & 2 deletions test/multiple_failure_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ def test_last_failure_removed_from_redis_after_error_limit

Resque.enqueue(LimitThreeJobDelay1Hour)
perform_next_job(@worker)
assert !Resque.redis.exists(key), 'key should have been removed.'
assert [false, 0].include?(Resque.redis.exists(key) || false), 'key should have been removed.'
end

def test_last_failure_has_double_delay_redis_expiry_if_delay
Expand All @@ -109,7 +109,7 @@ def test_last_failure_is_not_saved_in_redis_if_no_delay

# I don't like this, but...
key = failure_key_for(LimitThreeJob)
assert !Resque.redis.exists(key)
assert [false, 0].include?(Resque.redis.exists(key) || false), 'key should have not been added.'
end

def test_errors_are_suppressed_up_to_retry_limit
Expand Down Expand Up @@ -158,7 +158,10 @@ def test_failure_with_retry_bumps_key_expire
end

def test_redis_exists_returns_integer
return if !Redis.respond_to?(:exists_returns_integer)

Resque.enqueue(RetryDefaultsJob)

original = Redis.exists_returns_integer
Redis.exists_returns_integer = true

Expand Down
12 changes: 11 additions & 1 deletion test/resque_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

class ResqueTest < Minitest::Test
def test_resque_version
major, minor, _ = Resque::Version.split('.')
major, minor, _ = resque_version.split('.')
assert [1, 2].include?(major.to_i), 'major version does not match'

if major.to_i == 1
Expand All @@ -19,4 +19,14 @@ def test_good_job
assert_equal 1, Resque.info[:processed], 'processed job'
assert_equal 0, Resque.delayed_queue_schedule_size
end

private

def resque_version
begin
Resque::VERSION
rescue
Resque::Version
end
end
end
2 changes: 1 addition & 1 deletion test/retry_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ def test_retry_on_dirty_exit
2.times do
job = @worker.reserve
child = fork do
Resque.redis.client.reconnect
Resque.redis.reconnect rescue Resque.redis.client.reconnect
job.perform
end
Process.waitpid(child)
Expand Down

0 comments on commit 3caab64

Please sign in to comment.