Class: PatientHttp::SolidQueue::ProcessorObserver

Inherits:
ProcessorObserver
  • Object
show all
Defined in:
lib/patient_http/solid_queue/processor_observer.rb

Overview

Processor Observer that monitors for crashed processes in order to re-enqueue workers, and manages the TaskMonitor lifecycle.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(processor) ⇒ ProcessorObserver

Returns a new instance of ProcessorObserver.



10
11
12
13
14
15
16
17
18
# File 'lib/patient_http/solid_queue/processor_observer.rb', line 10

def initialize(processor)
  @processor = processor
  @task_monitor = TaskMonitor.new(processor.config)
  @monitor_thread = TaskMonitorThread.new(
    processor.config,
    @task_monitor,
    -> { @processor.inflight_request_ids }
  )
end

Instance Attribute Details

#task_monitorObject (readonly)

Returns the value of attribute task_monitor.



8
9
10
# File 'lib/patient_http/solid_queue/processor_observer.rb', line 8

def task_monitor
  @task_monitor
end

Instance Method Details

#request_end(request_task) ⇒ Object



33
34
35
# File 'lib/patient_http/solid_queue/processor_observer.rb', line 33

def request_end(request_task)
  task_monitor.unregister(request_task)
end

#request_start(request_task) ⇒ Object



29
30
31
# File 'lib/patient_http/solid_queue/processor_observer.rb', line 29

def request_start(request_task)
  task_monitor.register(request_task)
end

#startObject



20
21
22
# File 'lib/patient_http/solid_queue/processor_observer.rb', line 20

def start
  @monitor_thread.start
end

#stopObject



24
25
26
27
# File 'lib/patient_http/solid_queue/processor_observer.rb', line 24

def stop
  @monitor_thread.stop
  task_monitor.remove_process
end