예제 #1
0
 public SchedulerConfigurer(string schedulerId, IScheduleStore scheduleStore)
 {
     _logger.DebugFormat("Configuring scheduler with ID {SchedulerId}", _schedulerId);
     _schedulerId = schedulerId;
     _injectionist.Register(c => new SchedulerId(schedulerId));
     _injectionist.Register(c => _catalog);
     _injectionist.Register(c => scheduleStore);
 }
예제 #2
0
 protected override Task ExecuteAsync(CancellationToken stoppingToken)
 {
     return(Task.Run(async() =>
     {
         while (!stoppingToken.IsCancellationRequested)
         {
             IScheduleStore store = _iocResolver.GetRequiredService <IScheduleStore>();
             IUnitOfWorkManager unitOfWorkManager = _iocResolver.GetRequiredService <IUnitOfWorkManager>();
             using (var uow = unitOfWorkManager.Begin())
             {
                 var schedules = await store.GetWaitingSchedulesAsync(1000);
                 foreach (var schedule in schedules)
                 {
                     await TryExecuteScheduleAsync(schedule);
                     await store.UpdateAsync(schedule);
                 }
                 uow.Complete();
             }
             Thread.Sleep(1000);
         }
     }));
 }
예제 #3
0
 public ScheduleService(ITravelServiceClient travelServiceClient, IScheduleStore scheduleStore)
 {
     this.travelServiceClient = travelServiceClient;
     this.scheduleStore       = scheduleStore;
 }
예제 #4
0
 public SchedulerManager(IScheduleStore store)
 {
     _store = store;
 }