Пример #1
0
        private async Task InitializeScheduler(IScheduler scheduler, CancellationToken cancellationToken)
        {
            foreach (var listener in serviceProvider.GetServices <ISchedulerListener>())
            {
                scheduler.ListenerManager.AddSchedulerListener(listener);
            }

            var jobListeners = serviceProvider.GetServices <IJobListener>();

            foreach (var configuration in serviceProvider.GetServices <JobListenerConfiguration>())
            {
                var listener = jobListeners.First(x => x.GetType() == configuration.ListenerType);
                scheduler.ListenerManager.AddJobListener(listener, configuration.Matchers);
            }

            var triggerListeners = serviceProvider.GetServices <ITriggerListener>();

            foreach (var configuration in serviceProvider.GetServices <TriggerListenerConfiguration>())
            {
                var listener = triggerListeners.First(x => x.GetType() == configuration.ListenerType);
                scheduler.ListenerManager.AddTriggerListener(listener, configuration.Matchers);
            }

            var calendars = serviceProvider.GetServices <CalendarConfiguration>();

            foreach (var configuration in calendars)
            {
                await scheduler.AddCalendar(configuration.Name, configuration.Calendar, configuration.Replace, configuration.UpdateTriggers, cancellationToken);
            }

            await processor.ScheduleJobs(scheduler, cancellationToken);
        }
        public override async Task <IScheduler> GetScheduler(CancellationToken cancellationToken = default)
        {
            var scheduler = await base.GetScheduler(cancellationToken);

            if (initialized)
            {
                return(scheduler);
            }

            ContainerConfigurationProcessor configurationProcessor = new ContainerConfigurationProcessor(serviceProvider);
            await configurationProcessor.ScheduleJobs(scheduler, cancellationToken);

            initialized = true;
            return(scheduler);
        }
Пример #3
0
        public override async Task <IScheduler> GetScheduler(CancellationToken cancellationToken = default)
        {
            // check if logging provider configured and let if configure
            serviceProvider.GetService <MicrosoftLoggingProvider>();

            var scheduler = await base.GetScheduler(cancellationToken);

            if (initialized)
            {
                return(scheduler);
            }

            foreach (var listener in serviceProvider.GetServices <ISchedulerListener>())
            {
                scheduler.ListenerManager.AddSchedulerListener(listener);
            }

            var jobListeners = serviceProvider.GetServices <IJobListener>();

            foreach (var configuration in serviceProvider.GetServices <JobListenerConfiguration>())
            {
                var listener = jobListeners.First(x => x.GetType() == configuration.ListenerType);
                scheduler.ListenerManager.AddJobListener(listener, configuration.Matchers);
            }

            var triggerListeners = serviceProvider.GetServices <ITriggerListener>();

            foreach (var configuration in serviceProvider.GetServices <TriggerListenerConfiguration>())
            {
                var listener = triggerListeners.First(x => x.GetType() == configuration.ListenerType);
                scheduler.ListenerManager.AddTriggerListener(listener, configuration.Matchers);
            }

            var calendars = serviceProvider.GetServices <CalendarConfiguration>();

            foreach (var configuration in calendars)
            {
                await scheduler.AddCalendar(configuration.Name, configuration.Calendar, configuration.Replace, configuration.UpdateTriggers, cancellationToken);
            }

            ContainerConfigurationProcessor configurationProcessor = new ContainerConfigurationProcessor(serviceProvider);
            await configurationProcessor.ScheduleJobs(scheduler, cancellationToken);

            initialized = true;
            return(scheduler);
        }
Пример #4
0
        public override async Task <IScheduler> GetScheduler(CancellationToken cancellationToken = default)
        {
            var scheduler = await base.GetScheduler(cancellationToken);

            if (initialized)
            {
                return(scheduler);
            }

            foreach (var listener in serviceProvider.GetServices <ISchedulerListener>())
            {
                scheduler.ListenerManager.AddSchedulerListener(listener);
            }

            var jobListeners = serviceProvider.GetServices <IJobListener>();

            foreach (var configuration in serviceProvider.GetServices <JobListenerConfiguration>())
            {
                var listener = jobListeners.First(x => x.GetType() == configuration.ListenerType);
                scheduler.ListenerManager.AddJobListener(listener, configuration.Matchers);
            }

            var triggerListeners = serviceProvider.GetServices <ITriggerListener>();

            foreach (var configuration in serviceProvider.GetServices <TriggerListenerConfiguration>())
            {
                var listener = triggerListeners.First(x => x.GetType() == configuration.ListenerType);
                scheduler.ListenerManager.AddTriggerListener(listener, configuration.Matchers);
            }

            ContainerConfigurationProcessor configurationProcessor = new ContainerConfigurationProcessor(serviceProvider);
            await configurationProcessor.ScheduleJobs(scheduler, cancellationToken);

            initialized = true;
            return(scheduler);
        }