Class: Tasker::Orchestration::TaskFinalizer::ReasonDeterminer
- Inherits:
-
Object
- Object
- Tasker::Orchestration::TaskFinalizer::ReasonDeterminer
- Defined in:
- lib/tasker/orchestration/task_finalizer.rb
Overview
Service class to determine reasons for pending/reenqueue Reduces complexity by organizing reason determination logic
Constant Summary collapse
- PENDING_REASON_MAP =
Frozen hash for O(1) pending reason lookups
{ Constants::TaskExecution::ExecutionStatus::HAS_READY_STEPS => Constants::TaskFinalization::PendingReasons::READY_FOR_PROCESSING, Constants::TaskExecution::ExecutionStatus::WAITING_FOR_DEPENDENCIES => Constants::TaskFinalization::PendingReasons::WAITING_FOR_DEPENDENCIES, Constants::TaskExecution::ExecutionStatus::PROCESSING => Constants::TaskFinalization::PendingReasons::WAITING_FOR_STEP_COMPLETION }.freeze
- REENQUEUE_REASON_MAP =
Frozen hash for O(1) reenqueue reason lookups
{ Constants::TaskExecution::ExecutionStatus::HAS_READY_STEPS => Constants::TaskFinalization::ReenqueueReasons::READY_STEPS_AVAILABLE, Constants::TaskExecution::ExecutionStatus::WAITING_FOR_DEPENDENCIES => Constants::TaskFinalization::ReenqueueReasons::AWAITING_DEPENDENCIES, Constants::TaskExecution::ExecutionStatus::PROCESSING => Constants::TaskFinalization::ReenqueueReasons::STEPS_IN_PROGRESS }.freeze
Class Method Summary collapse
-
.determine_pending_reason(context) ⇒ String
Determine reason for pending state.
-
.determine_reenqueue_reason(context) ⇒ String
Determine reason for reenqueue.
Class Method Details
.determine_pending_reason(context) ⇒ String
Determine reason for pending state
381 382 383 384 385 386 387 388 |
# File 'lib/tasker/orchestration/task_finalizer.rb', line 381 def determine_pending_reason(context) return Constants::TaskFinalization::PendingReasons::CONTEXT_UNAVAILABLE unless context PENDING_REASON_MAP.fetch( context.execution_status, Constants::TaskFinalization::PendingReasons::WORKFLOW_PAUSED ) end |
.determine_reenqueue_reason(context) ⇒ String
Determine reason for reenqueue
394 395 396 397 398 399 400 401 |
# File 'lib/tasker/orchestration/task_finalizer.rb', line 394 def determine_reenqueue_reason(context) return Constants::TaskFinalization::ReenqueueReasons::CONTEXT_UNAVAILABLE unless context REENQUEUE_REASON_MAP.fetch( context.execution_status, Constants::TaskFinalization::ReenqueueReasons::CONTINUING_WORKFLOW ) end |