public void SetupEngineScheduler()
 {
     var dispatcher = new Dispatcher() {
         MessageQueueClient = Container.Resolve<IRabbitMQClient>("DefaultRabbitMQ"),
     };
     var engineScheduler = new EngineScheduler() {
         Scheduler = StdSchedulerFactory.GetDefaultScheduler(),
         IntegrationJobTypes = IntegrationJobTypes,
         Dispatcher = dispatcher,
     };
     Container.RegisterInstance<IEngineScheduler>(engineScheduler);
     var elasticsearchRepository = Container.Resolve<IElasticsearchRepository>();
     var engineSchedulerListener = new EngineSchedulerListener() {
         ElasticsearchRepository = elasticsearchRepository,
     };
     engineScheduler.AddSchedulerListener(engineSchedulerListener);
     engineScheduler.Start();
     var simpleTriggers = elasticsearchRepository.SelectAll<SimpleTrigger>();
     var allCronTriggers = elasticsearchRepository.SelectAll<CronTrigger>();
     var cronTriggers = allCronTriggers.Where(x => !string.IsNullOrWhiteSpace(x.CronExpressionString));
     foreach (var trigger in simpleTriggers)
         engineScheduler.ScheduleJobWithTrigger(trigger);
     foreach (var trigger in cronTriggers)
         engineScheduler.ScheduleJobWithTrigger(trigger);
     foreach(var cronTrigger in allCronTriggers.Where(x => string.IsNullOrWhiteSpace(x.CronExpressionString)))
         Log.Warn(x => x("Cron expression for trigger ({0}) is null, empty, or whitespace.", cronTrigger.Id));
 }
Esempio n. 2
0
 public void AddSchedulerListener(EngineSchedulerListener engineSchedulerListener)
 {
     Scheduler.ListenerManager.AddSchedulerListener(engineSchedulerListener);
 }