public void NormalizeTraject(TrajectTaskModel model) { List <TraveltimeSegment> input = model.InputQueryManager.GetAllResults($"select * from c where c.TrajectID = '{model.Segment}'"); _logger.LogInformation($"Found {input.Count} documents to process for traject {model.Segment}"); foreach (TraveltimeSegment t in input) { SegmentTaskModel segmentModel = new SegmentTaskModel { OutputQueryManager = model.OutputQueryManager, TraveltimeStatic = model.StaticData.Find(x => x.Merged.Id == t.Id), TraveltimeSegment = t }; _segmentQueue.Queue.Add(new GenericQueueTask <SegmentTaskModel> { Function = ProcessAndUploadSegment, Item = segmentModel }); } _trajectQueue.Finished += 1; }
public async void ProcessAndUploadSegment(SegmentTaskModel model) { GenericTraveltimeSegment merged = NormalizeSegment(model.TraveltimeSegment, model.TraveltimeStatic); try { await model.OutputQueryManager.Create(merged, 0, 10); _segmentQueue.Finished += 1; } catch (Microsoft.Azure.Documents.DocumentClientException ex) { //TODO: handle exception } catch (System.Threading.Tasks.TaskCanceledException ex) { _logger.LogWarning($"A task has been canceled: {ex.Task.Id}"); _segmentQueue.Failed += 1; } catch (System.OperationCanceledException ex) { _logger.LogWarning($"An operation has been canceled: {ex.Message}"); } }