static void StartSyncHistory() { var workitems = CitizensHost.GetServices <ICitizensWorkItem>(); var scheduler = new WebJobScheduler((cancellation) => { Parallel.ForEach(workitems, new ParallelOptions() { MaxDegreeOfParallelism = 5 }, (workitem) => { try { workitem.Execute(); } catch (Exception ex) { Logger.Error(ex.Message, ex); } }); }); scheduler.Shutdown += (sender, args) => { foreach (var workitem in workitems) { workitem.Abort(); } }; scheduler.Start(); Console.Read(); }
static void StartAuto() { var workitems = CitizensHost.GetServices <ICitizensWorkItem>(); var scheduler = new WebJobScheduler((cancellation) => { Parallel.ForEach(workitems, new ParallelOptions() { MaxDegreeOfParallelism = 5 }, (workitem) => { while (cancellation.IsCancellationRequested == false) { try { var offset = 60D * 60;//5 mins workitem.Execute(); for (var i = 0; ((cancellation.IsCancellationRequested == false) && (i < offset)); i++) { Thread.Sleep(1000); } } catch (Exception ex) { Logger.Error(ex.Message, ex); } } }); }); scheduler.Shutdown += (sender, args) => { foreach (var workitem in workitems) { workitem.Abort(); } }; scheduler.Start(); }