Class: BaseWorker

Inherits:
Object
  • Object
show all
Includes:
CustomerHandleConnection, Sidekiq::Worker
Defined in:
app/workers/base_worker.rb

Direct Known Subclasses

Unico::SimilarityControlWorker

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ BaseWorker

Returns a new instance of BaseWorker.



13
14
15
# File 'app/workers/base_worker.rb', line 13

def initialize(options = {})
  self.options = options
end

Instance Attribute Details

#customer_idObject

Returns the value of attribute customer_id.



9
10
11
# File 'app/workers/base_worker.rb', line 9

def customer_id
  @customer_id
end

#resource_idObject

Returns the value of attribute resource_id.



9
10
11
# File 'app/workers/base_worker.rb', line 9

def resource_id
  @resource_id
end

Class Method Details

.perform(&block) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'app/workers/base_worker.rb', line 17

def self.perform(&block)
  class_eval do
    define_method :perform_block, block

    def perform(customer_id, resource_id, options = {})
      self.customer_id = customer_id
      self.resource_id = resource_id
      self.options.merge!(options).symbolize_keys!

      using_connection_for(customer_id) do
        perform_block resource

        resource_mark_as_processed!
      end
    end
  end
end

Instance Method Details

#mark_as_error_processing!Object



47
48
49
# File 'app/workers/base_worker.rb', line 47

def mark_as_error_processing!
  using_connection_for(customer_id) { resource_mark_as_error_processing! }
end

#mark_as_processed!Object



43
44
45
# File 'app/workers/base_worker.rb', line 43

def mark_as_processed!
  using_connection_for(customer_id) { resource_mark_as_processed! }
end

#resourceObject



39
40
41
# File 'app/workers/base_worker.rb', line 39

def resource
  @resource ||= resource_repository.find resource_id
end

#resource_repositoryObject

Raises:

  • (NotImplementedError)


35
36
37
# File 'app/workers/base_worker.rb', line 35

def resource_repository
  raise NotImplementedError
end