Quartz.Net выполняет задачи раньше времени - PullRequest
0 голосов
/ 02 ноября 2019

В настоящее время я пытаюсь планировать задачи, используя Quartz.NET для бота Discord, который я разрабатываю. Вот как я обработал процесс планирования:

//guildEvent.Date is 2019-11-2 2:05PM
DateTime eventTime = DateTime.Parse(guildEvent.Date,null);
var timeUntil = eventTime.Subtract(DateTime.UtcNow);
var timeUntilString = $"{timeUntil.Hours}h {timeUntil.Minutes}m";
//By debugging, timeUntilString is returning 15m and 5s, but the task below still executes
//as soon as it's called anyways.
if (eventTime.CompareTo(DateTime.UtcNow) >= 0) {
    IJobDetail job = JobBuilder.Create<EventJob>()
        .WithIdentity(guildEventID, guildID.ToString())
        .Build();
    job.JobDataMap["discordClient"] = client;
    job.JobDataMap["guildEvent"] = guildEvent;
    var trigger = (ISimpleTrigger)TriggerBuilder.Create()
        .WithIdentity(guildEventID + "_TRIGGER", "guildevents")
        .StartAt(eventTime)
        .ForJob(guildEventID, guildID.ToString())
        .Build();
    Sched.Start();
    Sched.ScheduleJob(job, trigger);
} 

Независимо от timeUntilString, указывающего разницу во времени более 15 минут, эта задача по-прежнему выполняется, как только я вызываю Sched.ScheduleJob(job, trigger) независимо от этого.

...