Module: SidekiqUniqueJobs::Digests

Extended by:
Digests
Includes:
Connection, Logging
Included in:
Digests
Defined in:
lib/sidekiq_unique_jobs/digests.rb

Overview

Utility module to help manage unique digests in redis.

Constant Summary collapse

DEFAULT_COUNT =
1_000
SCAN_PATTERN =
'*'
CHUNK_SIZE =
100

Instance Method Summary collapse

Methods included from Connection

#redis

Methods included from Logging

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Instance Method Details

#all(pattern: SCAN_PATTERN, count: DEFAULT_COUNT) ⇒ Array<String>

Return unique digests matching pattern



21
22
23
# File 'lib/sidekiq_unique_jobs/digests.rb', line 21

def all(pattern: SCAN_PATTERN, count: DEFAULT_COUNT)
  redis { |conn| conn.sscan_each(UNIQUE_SET, match: pattern, count: count).to_a }
end

#countInteger

Get a total count of unique digests



28
29
30
# File 'lib/sidekiq_unique_jobs/digests.rb', line 28

def count
  redis { |conn| conn.scard(UNIQUE_SET) }
end

#del(digest: nil, pattern: nil, count: DEFAULT_COUNT) ⇒ Array<String>

Deletes unique digest either by a digest or pattern

Raises:

  • (ArgumentError)

    when both pattern and digest are nil



39
40
41
42
43
44
# File 'lib/sidekiq_unique_jobs/digests.rb', line 39

def del(digest: nil, pattern: nil, count: DEFAULT_COUNT)
  return delete_by_pattern(pattern, count: count) if pattern
  return delete_by_digest(digest) if digest

  raise ArgumentError, 'either digest or pattern need to be provided'
end