Skip to content

Commit

Permalink
fix: add expiration time for retry counters
Browse files Browse the repository at this point in the history
https://jira.railsc.ru/browse/PC4-21225

В тест тоже добавил, т.к. неизвестно очищается ли оттуда.
  • Loading branch information
Pavel Galkin committed Jun 5, 2018
1 parent 64a4156 commit 236379c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 3 deletions.
18 changes: 15 additions & 3 deletions lib/resque/integration.rb
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,22 @@ def priority?
false
end

# extend resque-retry
# Extend resque-retry.
#
# options - Hash
# :limit - Integer (default: 2)
# :delay - Integer (default: 60)
#
# :limit - Integer (default: 2)
# :delay - Integer (default: 60)
# :expire_retry_key_after - Integer (default: 3200), истечение ключа в секундах. Если
#
# t - среднее время выполнения одного джоба
# n - текущее кол-во джобов в очереди
# k - кол-во воркеров
#
# то expire_retry_key_after >= t * n / k
#
# Иначе ключ истечет, прежде чем джоб отработает.
#
#
# Returns nothing
def retrys(options = {})
Expand All @@ -114,6 +125,7 @@ def retrys(options = {})

@retry_limit = options.fetch(:limit, 2)
@retry_delay = options.fetch(:delay, 60)
@expire_retry_key_after = options.fetch(:expire_retry_key_after, 1.hour.seconds)
end

# Mark Job as ordered
Expand Down
1 change: 1 addition & 0 deletions spec/resque/integration/unique_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ class JobUniqueWithRetry
@retry_limit = 2
@retry_delay = 1
@retry_exceptions = [IOError]
@expire_retry_key_after = 300

unique do |foo_var, params|
params[:foo]
Expand Down

0 comments on commit 236379c

Please sign in to comment.