Skip to content

Enums

Reference for all TickerQ enumeration types.

TickerStatus

Job execution status values.

csharp
public enum TickerStatus
{
    Idle,           // Created but not yet queued
    Queued,         // In queue waiting to execute
    InProgress,     // Currently executing
    Done,           // Completed (executed after due time)
    DueDone,        // Completed (executed at due time)
    Failed,         // Failed after all retries
    Cancelled,      // Cancelled by user/system
    Skipped         // Skipped (e.g., duplicate prevented)
}

Status Flow

Idle → Queued → InProgress → Done/Failed/Cancelled/Skipped

Status Descriptions

StatusDescriptionCan Update?Can Delete?
IdleCreated but not yet queuedYesYes
QueuedWaiting in queue to executeNoYes
InProgressCurrently executingNoNo
DoneCompleted (executed after due time)NoYes
DueDoneCompleted (executed exactly at due time)NoYes
FailedFailed after all retries exhaustedNoYes
CancelledCancelled by user or systemNoYes
SkippedSkipped due to conditions (duplicate, etc.)NoYes

RunCondition

Condition for child job execution based on parent status.

csharp
public enum RunCondition
{
    OnSuccess,              // Run if parent succeeds
    OnFailure,              // Run if parent fails
    OnCancelled,            // Run if parent is cancelled
    OnFailureOrCancelled,   // Run if parent fails or cancelled
    OnAnyCompletedStatus,   // Run after parent completes (any terminal status)
    InProgress              // Run in parallel with parent
}

Usage Examples

csharp
// Run child only if parent succeeds
var child = new TimeTickerEntity
{
    Function = "SendConfirmation",
    ParentId = parent.Id,
    RunCondition = RunCondition.OnSuccess,
    ExecutionTime = DateTime.UtcNow.AddMinutes(1)
};

// Run child in parallel with parent
var parallelChild = new TimeTickerEntity
{
    Function = "LogActivity",
    ParentId = parent.Id,
    RunCondition = RunCondition.InProgress,
    ExecutionTime = DateTime.UtcNow
};

// Run child if parent fails (error recovery)
var recoveryChild = new TimeTickerEntity
{
    Function = "NotifyFailure",
    ParentId = parent.Id,
    RunCondition = RunCondition.OnFailure,
    ExecutionTime = DateTime.UtcNow.AddMinutes(1)
};

Condition Behavior

ConditionWhen Child RunsParent Status
OnSuccessParent completes successfullyDueDone or Done
OnFailureParent fails after all retriesFailed
OnCancelledParent is cancelledCancelled
OnFailureOrCancelledParent fails or is cancelledFailed or Cancelled
OnAnyCompletedStatusParent reaches any terminal statusDone, DueDone, Failed, Cancelled, Skipped
InProgressRuns in parallel with parentAny (runs immediately)

TickerTaskPriority

Execution priority for jobs.

csharp
public enum TickerTaskPriority
{
    LongRunning,    // Executes in separate thread pool
    High,           // Highest priority
    Normal,         // Default priority
    Low             // Lowest priority
}

Priority Usage

Set priority in the [TickerFunction] attribute:

csharp
[TickerFunction(
    "MyJob",
    taskPriority: TickerTaskPriority.High
)]
public async Task MyJob(TickerFunctionContext context, CancellationToken cancellationToken)
{
    // High priority job
}

Priority Behavior

  • High: Executed before Normal and Low priority jobs
  • Normal: Default priority (most common)
  • Low: Executed after higher priority jobs
  • LongRunning: Executes in separate thread pool (doesn't block other jobs)

See Also

Built by Albert Kunushevci