Class: Tasker::Orchestration::TaskFinalizer::ReenqueueManager

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

Overview

Service class to manage task reenqueuing Reduces complexity by organizing reenqueue logic

Class Method Summary collapse

Class Method Details

.reenqueue_with_context(task, context, reason) ⇒ Object

Re-enqueue task with context intelligence

Parameters:



414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
# File 'lib/tasker/orchestration/task_finalizer.rb', line 414

def reenqueue_with_context(task, context, reason)
  delay_seconds = DelayCalculator.calculate_reenqueue_delay(context)
  reason ||= ReasonDeterminer.determine_reenqueue_reason(context)

  task_reenqueuer = Tasker::Orchestration::TaskReenqueuer.new

  if delay_seconds.positive?
    task_reenqueuer.reenqueue_task_delayed(
      task,
      delay_seconds: delay_seconds,
      reason: reason
    )
  else
    task_reenqueuer.reenqueue_task(task, reason: reason)
  end

  Rails.logger.info("TaskFinalizer: Task #{task.task_id} re-enqueued - #{reason} (delay: #{delay_seconds}s, ready_steps: #{context&.ready_steps})")
end