Szukałem odpowiedzi na pytanie, jak ponownie wykonać zadanie po upływie określonego czasu, jeśli zadanie zgłasza wyjątek. Nie widzę żadnego prostego sposobu robienia tego.Refire quartz.net trigger po 15 minutach, jeśli zadanie zakończyło się niepowodzeniem z wyjątkiem:
jeśli mogę ustawić spust się tak:
JobDetail job = new JobDetail("Download catalog", null, typeof(MyJob));
job .Durable = true;
Trigger trigger= TriggerUtils.MakeDailyTrigger(12, 0);
trigger.StartTimeUtc = DateTime.UtcNow;
trigger.Name = "trigger name";
scheduler.ScheduleJob(job , trigger);
I MyJob wyglądać następująco:
public class MyJob : IJob
{
public void Execute(JobExecutionContext context)
{
var service = new service();
try
{
service.Download();
}
catch (Exception)
{
throw;
}
}
}
jak mogę zrobić spust do refire/Retrigger po tam nie ma 15 minut, jeśli wywołanie service.Download() wywołuje jakiś wyjątek?
Tak. Przeczytałem to, ale nie jest to dobre rozwiązanie, ponieważ mogłoby to potencjalnie oznaczać, że będzie odnawiał się wiele tysięcy razy (a nawet miliony razy). Ale miło widzieć, że doszliście do tego wniosku. – mslot
@mslot: Zaktualizowałem swoją odpowiedź. – LeftyX
Dzięki: D Miałem taki sam pomysł, ale po raz pierwszy używam kwarcu, więc nie byłem pewien, czy mógłbyś użyć kontekstu. – mslot