Qrartz.net DailyTimeIntervalScheduleBuilder - Как идентифицировать первое и последнее выполнение триггера за день - PullRequest
0 голосов
/ 27 апреля 2019

Попытка идентифицировать первое и последнее выполнение триггера в день, когда quartz.net выстрел Execute(IJobExecutionContext context). Есть ли способ найти это в quartz.net Execute(IJobExecutionContext context) методе?

1 Ответ

0 голосов
/ 25 мая 2019
IEnumerable<DateTime> firingTimes = context.Trigger.GetNextFiringTimes(DateTimeOffset.Now.Date, DateTimeOffset.Now.Date.AddDays(1));

public static class TriggerExts
{
    public static IEnumerable<DateTime> GetNextFiringTimes(this ITrigger trigger, DateTimeOffset? after = null, DateTimeOffset? before = null)
    {
        ITrigger temp = trigger.Clone();

        after = after ?? DateTimeOffset.Now;
        DateTimeOffset? next = temp.GetFireTimeAfter(after);
        before = before ?? next.Value.AddYears(1);

        while (next.HasValue && next.Value < before)
        {
            yield return next.Value.LocalDateTime;

            next = temp.GetFireTimeAfter(next.Value);
        }
    }
}
...