public DbScheduler( IOnetimeTaskScheduler onetimeScheduler, IRecurringTaskScheduler recurringScheduler, IPublishingTaskScheduler publishingScheduler, IArticleSchedulerService articleSchedulerService ) { _onetimeScheduler = onetimeScheduler; _recurringScheduler = recurringScheduler; _publishingScheduler = publishingScheduler; _articleSchedulerService = articleSchedulerService; }
private async Task <IEnumerable <RecurringTaskSchedule> > GetSchedulesAsync(IRecurringTaskScheduler recurringTaskScheduler, string schedulerName) { try { this._logger.LogInformation("Getting scheduled tasks. scheduler={0}", schedulerName); return(await recurringTaskScheduler.GetTaskSchedulesAsync()); } catch (Exception e) { this._logger.LogError( e, "Unhandled exception getting schedules from '{0}'. Will delete all existing jobs.", schedulerName); } return(Enumerable.Empty <RecurringTaskSchedule>()); }
private async Task RescheduleAsync(IRecurringTaskScheduler recurringTaskScheduler, List <RecurringTaskScheduleDto> current) { var schedulerName = recurringTaskScheduler.GetType().Name; this._logger.LogInformation("Getting schedules for scheduler {SchedulerName}", schedulerName); var taskSchedules = (await this.GetSchedulesAsync(recurringTaskScheduler, schedulerName)).ToList(); var group = GetGroupNameFromScheduler(recurringTaskScheduler); // Create and update jobs foreach (var taskSchedule in taskSchedules) { var id = group + IdSplitter + taskSchedule.Name; current.Add(new RecurringTaskScheduleDto(id, taskSchedule)); } }
private static string GetGroupNameFromScheduler(IRecurringTaskScheduler scheduler) { return(scheduler.GetType().Name); }