/// <inheritdoc /> public void Add(IJobHistoryEntry historyEntry) { _jobHistory.Add(historyEntry); _lastExecutions[historyEntry.JobKey] = historyEntry; if (historyEntry.JobResult == JobResult.Success) { _lastSuccessfulExecutions[historyEntry.JobKey] = historyEntry; } }
/// <inheritdoc /> public int GetExecutionPriority(string jobKey, IJobHistoryEntry lastExecution, IJobHistoryEntry lastSuccessfulExecution, DateTime now) { var lastExecutionTime = lastSuccessfulExecution?.ExecutionTime ?? DateTime.MinValue; if (now > StartTime && lastExecutionTime < StartTime && now < StartTime + SlotTime) { return(Priority); } else { return(0); } }
/// <inheritdoc /> public int GetExecutionPriority(string jobKey, IJobHistoryEntry lastExecution, IJobHistoryEntry lastSuccessfulExecution, DateTime now) { if (lastSuccessfulExecution == null) { //Hint: Delayed retry if (lastExecution != null && lastExecution.ExecutionTime + RetryDelay > now) { return(0); } return(Priority); } else { return(0); } }
/// <inheritdoc /> public int GetExecutionPriority(string jobKey, IJobHistoryEntry lastExecution, IJobHistoryEntry lastSuccessfulExecution, DateTime now) { if (lastExecution == null) { return(Priority); } if (lastExecution.ExecutionTime + Interval < now) { var delay = now - (lastExecution.ExecutionTime + Interval); var delayTotalMinutes = (int)delay.TotalMinutes * Priority; return(Math.Max(delayTotalMinutes, Priority)); } return(0); }
/// <inheritdoc /> public int GetExecutionPriority(string jobKey, IJobHistoryEntry lastExecution, IJobHistoryEntry lastSuccessfulExecution, DateTime now) { var basePriority = _intervalSchedule.GetExecutionPriority(jobKey, lastExecution, lastSuccessfulExecution, now); if (basePriority > 0) { return(basePriority); } if (lastExecution.JobResult == JobResult.Failure) { // Don't retry immediately if (lastExecution.ExecutionTime + RetryDelay > now) { return(0); } return(Priority); } return(basePriority); }
public int GetExecutionPriority(string jobKey, IJobHistoryEntry lastExecution, IJobHistoryEntry lastSuccessfulExecution, DateTime now) { throw new NotImplementedException(); }
/// <inheritdoc /> public int GetExecutionPriority(string jobKey, IJobHistoryEntry lastExecution, IJobHistoryEntry lastSuccessfulExecution, DateTime now) { return(Priority); }