public async Task AsyncChainEndToEnd_CustomFactories() { using (_functionCompletedEvent = new ManualResetEvent(initialState: false)) { CustomQueueProcessorFactory queueProcessorFactory = new CustomQueueProcessorFactory(); _hostConfig.Queues.QueueProcessorFactory = queueProcessorFactory; CustomStorageClientFactory storageClientFactory = new CustomStorageClientFactory(); _hostConfig.StorageClientFactory = storageClientFactory; await AsyncChainEndToEndInternal(); Assert.Equal(3, queueProcessorFactory.CustomQueueProcessors.Count); Assert.True(queueProcessorFactory.CustomQueueProcessors.All(p => p.Context.Queue.Name.StartsWith("asynce2eq"))); Assert.True(queueProcessorFactory.CustomQueueProcessors.Sum(p => p.BeginProcessingCount) >= 2); Assert.True(queueProcessorFactory.CustomQueueProcessors.Sum(p => p.CompleteProcessingCount) >= 2); Assert.Equal(19, storageClientFactory.TotalBlobClientCount); Assert.Equal(15, storageClientFactory.TotalQueueClientCount); Assert.Equal(0, storageClientFactory.TotalTableClientCount); Assert.Equal(8, storageClientFactory.ParameterBlobClientCount); Assert.Equal(5, storageClientFactory.ParameterQueueClientCount); Assert.Equal(0, storageClientFactory.ParameterTableClientCount); } }
public async Task AsyncChainEndToEnd_CustomFactories() { using (_functionCompletedEvent = new ManualResetEvent(initialState: false)) { CustomQueueProcessorFactory queueProcessorFactory = new CustomQueueProcessorFactory(); _hostBuilder.ConfigureServices(services => { services.AddSingleton <IQueueProcessorFactory>(queueProcessorFactory); }); await AsyncChainEndToEndInternal(_hostBuilder); Assert.Equal(2, queueProcessorFactory.CustomQueueProcessors.Count); Assert.True(queueProcessorFactory.CustomQueueProcessors.All(p => p.Context.Queue.Name.StartsWith("asynce2eq"))); Assert.True(queueProcessorFactory.CustomQueueProcessors.Sum(p => p.BeginProcessingCount) >= 2); Assert.True(queueProcessorFactory.CustomQueueProcessors.Sum(p => p.CompleteProcessingCount) >= 2); } }
static void Main(string[] args) { var builder = new HostBuilder(); var facorty = new CustomQueueProcessorFactory(); builder.ConfigureWebJobs(b => { b.AddAzureStorageCoreServices(); b.AddAzureStorage(); }); builder.ConfigureServices(s => s.AddSingleton <IQueueProcessorFactory>(facorty)); builder.ConfigureAppConfiguration((context, config) => { config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true); }); var host = builder.Build(); using (host) { host.Run(); } }