class Dynflow::Executors::Sidekiq::OrchestratorJobs::WorkerDone

handles resposnes about finished work form the workers or some event to handle on orchestrator side

Public Instance Methods

perform(work_item, delayed_events = nil) click to toggle source

@param request_envelope [Dispatcher::Request] - request to handle on orchestrator side

usually to start new execution or to pass some event
# File lib/dynflow/executors/sidekiq/orchestrator_jobs.rb, line 12
def perform(work_item, delayed_events = nil)
  # Usually the step is saved on the worker's side. However if sidekiq is shut down,
  #   then the step may not have been saved so we save it just to be sure
  if work_item.is_a?(Director::StepWorkItem) && work_item.step&.error&.exception.is_a?(::Sidekiq::Shutdown)
    work_item.step.save
  end
  Dynflow.process_world.executor.core.tell([:work_finished, work_item, delayed_events])
end