2017-04-19 3 views
0

Ich benutze Hangfire Version "1.6.8".End Recurring Job nach 'n' mal ausführen

var datetime = DateTime.Now; 

var cron = Cron.Monthly(datetime.Day,datetime.Hour); 

RecurringJob.AddOrUpdate<IService>(recurringId, x =>x.CreateRecurring(id), cron); 

Wie kann ich diesen wiederkehrenden Job beenden, nachdem er 'n' mal ausgeführt wurde?

Antwort

0

Der einfachste Weg, dies zu tun in einer bestimmten Anzahl von Zeiten passieren könnte, wenn die Methode, die sie genannt wird und verhindern, ausgeführt wird, sobald diese Zahl erreicht ist:

public class MyService : IService 
{ 
    public int runCount = 0; 

    public void CreateRecurring(id, int? maxTimes = null) 
    { 
     if (maxTimes.HasValue && (runCount >= maxTimes)) 
     { 
      // Has run enough times now, don't do it again 
      return; 
     } 

     // do something... 
    } 
} 


// Run a max of 5 times 
RecurringJob.AddOrUpdate<IService>(recurringId, x =>x.CreateRecurring(id, 5), cron);