2015-06-11 15 views
13

Próbuję użyć usługi Hangfire do wykonywania powtarzających się zadań w tle, które sondują dane z innej witryny, problem polega na tym, że nie chcę, aby powtarzające się zadanie było uruchamiane, jeśli poprzednie zadanie nadal działa .Powtarzające się zadanie pojedynczej instancji Hangfire

Przeczytałem dokumentację, ale nie mogę znaleźć odpowiedzi. Czy istnieje sposób na powtarzające się zadanie, które jest uruchamiane co 10 minut, ale pomija, jeśli poprzednie zadanie nie zostało jeszcze wykonane?

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

masz na myśli ostatnią realizację tego samego zadania cyklicznego? –

Odpowiedz

0

Oto sugestia: Po prostu ustaw kolejkę jako pojedynczą instancję. Następnie, jeśli zadanie zakończy się pomyślnie, wykonasz ostatni krok w zadaniu. Ostatnim etapem pracy będzie kolejkowanie zlecenia, aby wykonać je ponownie za 10 minut.

Czy to nie zapewni Ci funkcjonalności, której potrzebujesz?

Powiązane problemy