public async Task ProfileBatches(IBatchProfilingContext batchProfilingContext) { Guard.ArgumentNotNull(batchProfilingContext, nameof(batchProfilingContext)); batchProfilingContext.InitialiseItems(1, _options.BatchSize); IProducerConsumer producerConsumer = _producerConsumerFactory.CreateProducerConsumer(ProduceBatchProfileRequests, ProfileBatchRequests, 10, _options.ConsumerCount, _logger); await producerConsumer.Run(batchProfilingContext); }
private async Task IndexSpecifications <TSourceItem>(IEnumerable <TSourceItem> specifications) { IEnumerable <SpecificationIndex> searchIndices = GetSearchIndices(specifications); PagedContext <SpecificationIndex> context = new PagedContext <SpecificationIndex>(searchIndices); IProducerConsumer producerConsumer = _producerConsumerFactory.CreateProducerConsumer(ProduceSpecificationIndices, IndexSpecifications, 20, 1, _logger); await producerConsumer.Run(context); }
public async Task ImportData(string specificationId, string fundingStreamId, SchemaContext schemaContext) { ISqlImportContext importContext = await _sqlImportContextBuilder.CreateImportContext(specificationId, fundingStreamId, schemaContext); IProducerConsumer producerConsumer = _producerConsumerFactory.CreateProducerConsumer(ProducePublishedProviders, PopulateDataTables, 7, 5, _logger); await producerConsumer.Run(importContext); await RunBulkImports(importContext); }
public async Task <IActionResult> ProcessProfileAllocationBatchRequest(ProfileBatchRequest profileBatchRequest) { Guard.ArgumentNotNull(profileBatchRequest, nameof(ProfileBatchRequest)); ValidationResult validationResult = await _batchRequestValidation.ValidateAsync(profileBatchRequest); if (!validationResult.IsValid) { return(validationResult.AsBadRequest()); } try { FundingStreamPeriodProfilePattern profilePattern = await GetProfilePattern(profileBatchRequest); if (profilePattern == null) { _logger.Error("Unable to find profile pattern for FundingStream = {fundingStreamId}, FundingPeriodId={FundingPeriodId}, FundingLineCode={FundingLineCode}, ProfilePatternKey={ProfilePatternKey}, ProviderType={ProviderType}, ProviderSubType={ProviderSubType}", profileBatchRequest.FundingStreamId, profileBatchRequest.FundingPeriodId, profileBatchRequest.FundingLineCode, profileBatchRequest.ProfilePatternKey, profileBatchRequest.ProviderType, profileBatchRequest.ProviderSubType); } BatchProfileRequestContext batchProfileRequestContext = new BatchProfileRequestContext(profilePattern, profileBatchRequest, 5); IProducerConsumer producerConsumer = _producerConsumerFactory.CreateProducerConsumer(ProduceProviderFundingValues, ProfileProviderFundingValues, 10, 10, _logger); await producerConsumer.Run(batchProfileRequestContext); return(new OkObjectResult(batchProfileRequestContext.Responses.ToArray())); } catch (Exception ex) { LogError(ex, profileBatchRequest); throw; } }