Class: CanvasSync::JobUniqueness::Strategy::Base
  
  
  
  
  
    - Inherits:
 
    - 
      Object
      
        
          - Object
 
          
            - CanvasSync::JobUniqueness::Strategy::Base
 
          
        
        show all
      
     
  
  
  
  
  
  
  
  
  
  
    - Defined in:
 
    - lib/canvas_sync/job_uniqueness/strategy/base.rb
 
  
  
 
  Instance Attribute Summary collapse
  
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  Constructor Details
  
    
  
  
    #initialize(lock_context)  ⇒ Base 
  
  
  
  
    
Returns a new instance of Base.
   
 
  
  
    
      
6
7
8
9 
     | 
    
      # File 'lib/canvas_sync/job_uniqueness/strategy/base.rb', line 6
def initialize(lock_context)
  @lock_context = lock_context
  @conflict_strategies = {}
end
     | 
  
 
  
 
  
    Instance Attribute Details
    
      
      
      
  
  
    #lock_context  ⇒ Object  
  
  
  
  
    
Returns the value of attribute lock_context.
   
 
  
  
    
      
4
5
6 
     | 
    
      # File 'lib/canvas_sync/job_uniqueness/strategy/base.rb', line 4
def lock_context
  @lock_context
end 
     | 
  
 
    
   
  
    Class Method Details
    
      
  
  
    .locks_on(*origins)  ⇒ Object 
  
  
  
  
    
      
13
14
15
16
17
18
19
20 
     | 
    
      # File 'lib/canvas_sync/job_uniqueness/strategy/base.rb', line 13
def self.locks_on(*origins)
  if origins.present?
    orgins = Array(origins).map(&:to_sym)
    self._locks_on = origins
  else
    self._locks_on || [:enqueue, :perform]
  end
end
     | 
  
 
    
   
  
    Instance Method Details
    
      
  
  
    #batch_callback(event, batch_status)  ⇒ Object 
  
  
  
  
    
      
25
26
27
28
29
30
31
32
33
34
35 
     | 
    
      # File 'lib/canvas_sync/job_uniqueness/strategy/base.rb', line 25
def batch_callback(event, batch_status)
  if event == :success
    unlock
  else
    unlock_cond = lock_context.config[:unlock_on_failure]
    if (event == :complete && unlock_cond == :any) || (event == :death && unlock_cond == :death) || (event == :stagnated && unlock_cond == :stagnant)
      unlock
    end
  end
end
     | 
  
 
    
      
  
  
    #on_enqueue  ⇒ Object 
  
  
  
  
    
      
22 
     | 
    
      # File 'lib/canvas_sync/job_uniqueness/strategy/base.rb', line 22
def on_enqueue; end 
     | 
  
 
    
      
  
  
    
      
23 
     | 
    
      # File 'lib/canvas_sync/job_uniqueness/strategy/base.rb', line 23
def on_perform; end 
     |