private async Task <IList <INumericRangeBlockContext> > GetNumericRangeBlocksAsync(ITaskExecutionContext taskExecutionContext) { using (var cs = taskExecutionContext.CreateCriticalSection()) { if (await cs.TryStartAsync()) { long startNumber; var lastBlock = await taskExecutionContext.GetLastNumericRangeBlockAsync(LastBlockOrder.LastCreated); var maxJourneyId = await _travelDataService.GetMaxJourneyIdAsync(); // if this is the first run then just process the last 1000 if (lastBlock == null) { startNumber = maxJourneyId - 1000; } // if there is no new data then just return any old blocks that have failed or died else if (lastBlock.EndNumber == maxJourneyId) { return(await taskExecutionContext.GetNumericRangeBlocksAsync(x => x.OnlyOldNumericBlocks())); } // startNumber is the next unprocessed id else { startNumber = lastBlock.EndNumber + 1; } int maxBlockSize = 500; return(await taskExecutionContext.GetNumericRangeBlocksAsync(x => x.WithRange(startNumber, maxJourneyId, maxBlockSize))); } throw new Exception("Could not acquire a critical section, aborted task"); } }
private IList<IDateRangeBlockContext> GetDateRangeBlocks(ITaskExecutionContext taskExecutionContext) { using (var cs = taskExecutionContext.CreateCriticalSection()) { if (cs.TryStart()) { var startDate = GetDateRangeStartDate(taskExecutionContext); var endDate = DateTime.Now; return taskExecutionContext.GetDateRangeBlocks(x => x.WithRange(startDate, endDate, TimeSpan.FromMinutes(30))); } throw new Exception("Could not acquire a critical section, aborted task"); } }
private IList <IDateRangeBlockContext> GetDateRangeBlocks(ITaskExecutionContext taskExecutionContext) { using (var cs = taskExecutionContext.CreateCriticalSection()) { if (cs.TryStart()) { var startDate = GetDateRangeStartDate(taskExecutionContext); var endDate = DateTime.Now; return(taskExecutionContext.GetDateRangeBlocks(x => x.WithRange(startDate, endDate, TimeSpan.FromMinutes(30)))); } throw new Exception("Could not acquire a critical section, aborted task"); } }
private IList<IListBlockContext<Journey, BatchDatesHeader>> GetListBlocks(ITaskExecutionContext taskExecutionContext) { using (var cs = taskExecutionContext.CreateCriticalSection()) { if (cs.TryStart()) { var startDate = GetDateRangeStartDate(taskExecutionContext); var endDate = DateTime.Now; var journeys = _travelDataService.GetJourneys(startDate, endDate).ToList(); var batchHeader = new BatchDatesHeader() { FromDate = startDate, ToDate = endDate }; short blockSize = 500; return taskExecutionContext.GetListBlocks<Journey, BatchDatesHeader>(x => x.WithPeriodicCommit(journeys, batchHeader, blockSize, BatchSize.Fifty)); } throw new Exception("Could not acquire a critical section, aborted task"); } }
private IList <IListBlockContext <Journey, BatchDatesHeader> > GetListBlocks(ITaskExecutionContext taskExecutionContext) { using (var cs = taskExecutionContext.CreateCriticalSection()) { if (cs.TryStart()) { var startDate = GetDateRangeStartDate(taskExecutionContext); var endDate = DateTime.Now; var journeys = _travelDataService.GetJourneys(startDate, endDate).ToList(); var batchHeader = new BatchDatesHeader() { FromDate = startDate, ToDate = endDate }; short blockSize = 500; return(taskExecutionContext.GetListBlocks <Journey, BatchDatesHeader>(x => x.WithPeriodicCommit(journeys, batchHeader, blockSize, BatchSize.Fifty))); } throw new Exception("Could not acquire a critical section, aborted task"); } }