Class: Ductwork::RowLockingExecutionClaim

Inherits:
Object
  • Object
show all
Defined in:
lib/ductwork/row_locking_execution_claim.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass, owner_process_id) ⇒ RowLockingExecutionClaim

Returns a new instance of RowLockingExecutionClaim.



5
6
7
8
9
10
# File 'lib/ductwork/row_locking_execution_claim.rb', line 5

def initialize(klass, owner_process_id)
  @availability = nil
  @execution = nil
  @klass = klass
  @process_id = owner_process_id
end

Instance Method Details

#latestObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ductwork/row_locking_execution_claim.rb', line 12

def latest
  Ductwork::Record.transaction do
    claim_availability

    if availability.present?
      Ductwork.logger.debug(
        msg: "Job claimed",
        role: :job_worker,
        process_id: process_id,
        availability_id: availability.id
      )
      update_state
    else
      Ductwork.logger.debug(
        msg: "No available job to claim",
        role: :job_worker,
        process_id: process_id,
        pipeline: klass
      )
    end
  end

  execution
end