2017-02-05 6 views
0

Ich möchte einen wiederkehrenden Job mit Hangfire erstellen, aber ich möchte es verzögert werden und zu einem bestimmten Zeitpunkt starten.
Zum Beispiel werde ich einen Job erstellen, der jede Woche eine Aufgabe erledigt, aber ich möchte diese Aufgabe nach 3 Tagen beginnen!Erstellen Zeitplan (verzögert) Wiederkehrender Job mit Hangfire in asp.net Formen

Nach der Suche konnte ich nicht zu etwas kommen, das sowohl die verzögerte Aufgabe als auch die wiederkehrende Aufgabe gleichzeitig ausführen kann.

Ich habe gerade begonnen, Hangfire heute zu verwenden, also habe ich noch nicht viel Erfahrung damit.

Antwort

1

Hangfire bietet die Möglichkeit, wiederkehrende Aufträge auf diese Weise zu erstellen:

RecurringJob.AddOrUpdate(
    () => myRecurringJob(), 
    Cron.Daily); 

jedoch, wie Sie erwähnt nicht, das Datum zu verschieben erlaubt, wo das erste Auftreten beginnen. Um dies zu umgehen, schlage ich vor, einen geplanten Auftrag verwenden, um Ihre wiederkehrenden Job zu einem späteren Zeitpunkt zu erstellen:

BackgroundJob.Schedule(() => myRecurringJobCreation(), 
         new DateTimeOffset(new DateTime(2017,2,10))); 

//... 
public void myRecurringJobCreation() { 
    RecurringJob.AddOrUpdate(
     () => myRecurringJob(), 
     Cron.Daily); 
} 
+0

, dass das erste, was war, das über mir einfiel, aber ich dachte, dass es sein kann, etwas anderes die Api mit das kann dieses Problem direkt ansprechen! –

+0

@MuhammadNour Ich denke, die einzige andere Möglichkeit ist, den wiederkehrenden Job sofort zu erstellen und die Ausführung direkt in 'myRecurringJob' zu verhindern, aber das ist ziemlich hässlich. Ich kenne keinen besseren Weg, dies in der API zu erreichen –

Verwandte Themen