2015-06-11 6 views
13

Ich versuche Hangfire zu verwenden, um einen wiederkehrenden Job im Hintergrund zu starten, der Daten von einer anderen Website abruft. Das Problem ist, dass der wiederkehrende Job nicht ausgeführt werden soll, wenn der vorherige Job noch ausgeführt wird .Hangfire Einzelinstanz wiederkehrender Job

Ich habe die Dokumentation gelesen, kann aber nicht die Antwort finden. Gibt es eine Möglichkeit, einen wiederkehrenden Job zu haben, der alle 10 Minuten ausgeführt wird, aber überspringt, wenn die vorherige Aufgabe noch nicht erledigt ist?

public void Configuration(IAppBuilder app) 
{ 
    app.MapSignalR(); 

    // Hangfire 
    GlobalConfiguration.Configuration 
     .UseSqlServerStorage("DatabaseContext"); 

    app.UseHangfireDashboard(); 
    app.UseHangfireServer(); 

    RecurringJob.AddOrUpdate("site-parser",() => SiteParserService.RunAll(), Cron.Minutely, TimeZoneInfo.Utc); 

    ConfigureAuth(app); 
} 
+0

Sie die letzte Ausführung der gleichen wiederkehrende Aufgabe bedeuten Sie? –

Antwort

0

Hier ist ein Vorschlag: Einfach den Job als eine einzelne Instanz in die Warteschlange stellen. Wenn der Job erfolgreich abgeschlossen wurde, führen Sie einen letzten Schritt im Job aus. Im letzten Schritt Ihres Jobs wird der Job in 10 Minuten erneut ausgeführt.

Werden Sie nicht die Funktionalität erhalten, die Sie benötigen?