Class: Gitlab::SidekiqMiddleware::DuplicateJobs::Strategies::DeduplicatesWhenScheduling

Inherits:
Base
  • Object
show all
Extended by:
Utils::Override
Includes:
Utils::StrongMemoize
Defined in:
lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb

Direct Known Subclasses

UntilExecuted, UntilExecuting

Instance Method Summary collapse

Methods included from Utils::Override

extended, extensions, included, method_added, override, prepended, queue_verification, verify!

Constructor Details

#initialize(duplicate_job) ⇒ DeduplicatesWhenScheduling

Returns a new instance of DeduplicatesWhenScheduling.



12
13
14
# File 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb', line 12

def initialize(duplicate_job)
  @duplicate_job = duplicate_job
end

Instance Method Details

#perform(job) ⇒ Object



28
29
30
# File 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb', line 28

def perform(job)
  update_job_wal_location!(job)
end

#schedule(job) ⇒ Object



17
18
19
20
21
22
23
24
25
# File 'lib/gitlab/sidekiq_middleware/duplicate_jobs/strategies/deduplicates_when_scheduling.rb', line 17

def schedule(job)
  return false if deduplicate?(job)

  # Delete signaling key as the job will be enqueued and no
  # rescheduling is needed on the server-middleware.
  duplicate_job.clear_signaling_key

  yield
end