2016-08-02 29 views
1

Ich arbeite an einer WebAPI, die Ereignisse und Termine plant. Um das zu tun, verwende ich das chroniton.NetCore-Paket. Ich kann den Zeitplan mit einem Cron-Ausdruck oder anderen Funktionen festlegen, aber gibt es eine Möglichkeit, ein Stopp- oder Beendigungsdatum für den Zeitplan festzulegen?Planen eines Jobs mit einem festen Beendigungsdatum in ASP.NET mit chroniton.NETCore

 var schedule = new EveryXTimeSchedule(TimeSpan.FromSeconds(5)); 

     var scheduledJob = singularity.ScheduleParameterizedJob(
      schedule, job, "Hello World", true); //starts immediately 

Ich wünsche um Mitternacht diesen Job am nächsten Tag zu stoppen, ohne Task.Delay zu verwenden (da die api staatenlos ist) Danke.

Antwort

2

Aktuelle Version von chroniton.NETCore unterstützt kein solches Verhalten out-of-the-Box. Sie können Ihre eigene Logik basierend darauf implementieren, dass Sie Informationen über den Zeitbereich haben.

  • ScheduleParameterizedJob() liefert ein IScheduledJob, die verwendet werden können, um den Auftrag abzubrechen, wenn nötig. Sie können zusätzliche RunOnceSchedule erstellen Sie Ihre erste Aufgabe am nächsten Tag um Mitternacht zu schließen

    Singularity.Instance.StopScheduledJob(IScheduledJob job);

  • verwenden, können Sie von EveryXTimeSchedule erben und NextScheduledTime Methode überschreiben Chroniton.Constants.Never zurückzukehren, wenn ‚nächste geplante Zeit‘ ist> = die nächste Tag um Mitternacht;

Best way to create a Midnight DateTime in C# :

DateTime nextDayAtMidnight = DateTime.Today.AddDays(1)