using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Quartz.Plugins.RecentHistory { public class ExecutionHistoryEntry { public string FireInstanceId { get; set; } public string SchedulerInstanceId { get; set; } public string SchedulerName { get; set; } public string Job { get; set; } public string Trigger { get; set; } public DateTime? ScheduledFireTimeUtc { get; set; } public DateTime ActualFireTimeUtc { get; set; } public bool Recovering { get; set; } public bool Vetoed { get; set; } public DateTime? FinishedTimeUtc { get; set; } public string ExceptionMessage { get; set; } } public interface IExecutionHistoryStore { string SchedulerName { get; set; } Task Get(string fireInstanceId); Task Save(ExecutionHistoryEntry entry); Task Purge(); Task> FilterLastOfEveryJob(int limitPerJob); Task> FilterLastOfEveryTrigger(int limitPerTrigger); Task> FilterLast(int limit); Task GetTotalJobsExecuted(); Task GetTotalJobsFailed(); Task IncrementTotalJobsExecuted(); Task IncrementTotalJobsFailed(); } }