public void AddSubscriberMetadataMetadata <T>(TaskSubscriberMetadata <T> metadata) { if (metadata != null) { Subscribers.Add(metadata); } }
public async Task TestMethod1() { var serviceProvider = new ServiceCollection() .AddLogging(l => { l.AddConsole(); }) .BuildServiceProvider(); var logger = serviceProvider.GetService <ILoggerFactory>() .CreateLogger <TaskExecutionContextTests>(); var monitorTimespan = TimeSpan.FromSeconds(10); var exitTimespan = TimeSpan.FromSeconds(5); var dummyMetadata = new DummyPullerMetadata(logger, 0, nameof(DummyPuller)); var subscription = TaskSubscriberMetadata <long> .CreateNewSubscription( 10, () => new DummySubscriber <long>(), TimeSpan.FromMinutes(30)); using (var context = new TaskExecutionContext(logger, monitorTimespan, exitTimespan, LogLevel.Debug, true)) { await context.TryRegisterNewExecutorAsync(dummyMetadata, CancellationToken.None).ConfigureAwait(false); await Task.Delay(5000).ConfigureAwait(false); await Task.Delay(5000).ConfigureAwait(false); await Task.Delay(5000).ConfigureAwait(false); dummyMetadata.IsEnabled = false; logger.LogInformation("Disabled"); await Task.Delay(5000).ConfigureAwait(false); dummyMetadata.IsEnabled = true; logger.LogInformation("Re-Enabled"); await Task.Delay(20000).ConfigureAwait(false); await context.FinalizeAsync(new CancellationToken()).ConfigureAwait(false); } }