2015-06-11 21 views
13

Sto tentando di utilizzare Hangfire per eseguire un processo ricorrente in background che esegue il polling dei dati da un altro sito Web, il problema è che non desidero che il processo ricorrente venga eseguito se il processo precedente è ancora in esecuzione .Lavoro ricorrente a istanza singola Hangfire

Ho letto la documentazione ma non riesco a trovare la risposta. C'è un modo per avere un lavoro ricorrente che viene eseguito ogni 10 minuti, ma salta se l'attività precedente non è ancora stata eseguita?

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

Vuoi dire l'ultima esecuzione dello stesso compito ricorrente? –

risposta

0

Ecco un suggerimento: basta accodare il lavoro come una singola istanza. Quindi, se il lavoro viene completato correttamente, si esegue un passaggio finale del lavoro. L'ultimo passaggio del tuo lavoro farà in modo che il lavoro venga eseguito nuovamente tra 10 minuti.

Non ti fornirà la funzionalità di cui hai bisogno?