Class: Tasker::Orchestration::TaskFinalizer::UnclearStateHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/tasker/orchestration/task_finalizer.rb

Overview

Service class to handle unclear task states Reduces complexity by organizing unclear state handling logic

Class Method Summary collapse

Class Method Details

.handle(task, context, finalizer) ⇒ Object

Handle unclear task state

Parameters:



533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
# File 'lib/tasker/orchestration/task_finalizer.rb', line 533

def handle(task, context, finalizer)
  if context
    Rails.logger.warn do
      "TaskFinalizer: Task #{task.task_id} in unclear state: " \
        "execution_status=#{context.execution_status}, " \
        "health_status=#{context.health_status}, " \
        "ready_steps=#{context.ready_steps}, " \
        "failed_steps=#{context.failed_steps}, " \
        "in_progress_steps=#{context.in_progress_steps}"
    end

    # Default to re-enqueuing with a longer delay for unclear states
    finalizer.reenqueue_task_with_context(
      task,
      context,
      reason: Constants::TaskFinalization::ReenqueueReasons::CONTINUING_WORKFLOW
    )
  else
    Rails.logger.error("TaskFinalizer: Task #{task.task_id} has no execution context and unclear state")

    # Without context, attempt to transition to error state
    finalizer.error_task(
      task,
      nil # No context available
    )
  end
end