public void AddSubscriberMetadataMetadata <T>(TaskSubscriberMetadata <T> metadata)
 {
     if (metadata != null)
     {
         Subscribers.Add(metadata);
     }
 }
コード例 #2
0
        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);
            }
        }