コード例 #1
0
        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));
            }
        }
コード例 #2
0
 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));
 }