public void PollingQueues() { ITaskProcessorConfiguration configuration = AppConfigConfigurationUnitTests.GetTaskProcessorConfiguration("PollingQueues"); Assert.AreEqual(3, configuration.PollingQueues.Count()); ITaskProcessorPollingQueueConfiguration config = configuration.PollingQueues.First(); Assert.AreEqual("A", config.Key); Assert.AreEqual(TimeSpan.FromMinutes(1), config.PollInterval); Assert.IsTrue(config.IsMaster); Assert.IsFalse(config.IsActive); Assert.IsFalse(config.IsConcurrent); Assert.AreEqual(0, config.MaxWorkers); config = configuration.PollingQueues.Skip(1).First(); Assert.AreEqual("B", config.Key); Assert.AreEqual(TimeSpan.FromMinutes(2), config.PollInterval); Assert.IsFalse(config.IsMaster); Assert.IsTrue(config.IsActive); Assert.IsFalse(config.IsConcurrent); Assert.AreEqual(5, config.MaxWorkers); config = configuration.PollingQueues.Skip(2).First(); Assert.AreEqual("C", config.Key); Assert.AreEqual(TimeSpan.FromMinutes(3), config.PollInterval); Assert.IsFalse(config.IsMaster); Assert.IsTrue(config.IsActive); Assert.IsTrue(config.IsConcurrent); Assert.AreEqual(10, config.MaxWorkers); }
/// <inheritdoc /> public void AddCopy(ITaskProcessorPollingQueueConfiguration source) { if (source == null) { throw new ArgumentNullException(nameof(source)); } this.pollingQueues.Add(source.Key, new RedisPollingQueueConfiguration(source)); }
public void PollingQueuesConfiguration() { FakeTaskProcessorRuntimeInfo processorInfo1 = new FakeTaskProcessorRuntimeInfo() { TaskProcessorId = Guid.NewGuid(), Configuration = new FakeTaskProcessorConfiguration() }; processorInfo1.Configuration.PollingQueues.Add(new FakePollingQueueConfiguration() { Key = "A", PollInterval = TimeSpan.FromMinutes(1), IsMaster = true }); processorInfo1.Configuration.PollingQueues.Add(new FakePollingQueueConfiguration() { Key = "B", PollInterval = TimeSpan.FromMinutes(2), IsActive = true }); processorInfo1.Configuration.PollingQueues.Add(new FakePollingQueueConfiguration() { Key = "C", PollInterval = TimeSpan.FromMinutes(3), IsConcurrent = true }); this.Repository.Add(processorInfo1); ITaskProcessorRuntimeInfo processorInfo2 = this.Repository.GetById(processorInfo1.TaskProcessorId); Assert.AreEqual(3, processorInfo2.Configuration.PollingQueues.Count()); ITaskProcessorPollingQueueConfiguration queue = processorInfo2.Configuration.PollingQueues.First(q => q.Key == "A"); Assert.AreEqual(TimeSpan.FromMinutes(1), queue.PollInterval); Assert.IsTrue(queue.IsMaster); Assert.IsFalse(queue.IsActive); Assert.IsFalse(queue.IsConcurrent); queue = processorInfo2.Configuration.PollingQueues.First(q => q.Key == "B"); Assert.AreEqual(TimeSpan.FromMinutes(2), queue.PollInterval); Assert.IsFalse(queue.IsMaster); Assert.IsTrue(queue.IsActive); Assert.IsFalse(queue.IsConcurrent); queue = processorInfo2.Configuration.PollingQueues.First(q => q.Key == "C"); Assert.AreEqual(TimeSpan.FromMinutes(3), queue.PollInterval); Assert.IsFalse(queue.IsMaster); Assert.IsFalse(queue.IsActive); Assert.IsTrue(queue.IsConcurrent); }
public void AddPollingQueue() { FakeTaskProcessorConfiguration config1 = new FakeTaskProcessorConfiguration(); FakeTaskProcessorConfiguration config2 = new FakeTaskProcessorConfiguration(); ITaskProcessorPollingQueueConfiguration pollingQueueConfig2 = config2.PollingQueues.Add("A"); pollingQueueConfig2.MaxWorkers = 11; config1.MergeWith(config2); ITaskProcessorPollingQueueConfiguration pollingQueueConfig1 = config1.PollingQueues["A"]; Assert.AreEqual(pollingQueueConfig2.MaxWorkers, pollingQueueConfig1.MaxWorkers); }
private static void Deserialize(IReadOnlyDictionary <string, string> values, ITaskProcessorPollingQueuesConfiguration result, string prefix) { if (!string.IsNullOrEmpty(prefix) && !prefix.EndsWith(".", StringComparison.Ordinal)) { prefix = prefix + "."; } foreach (KeyValuePair <string, string> pair in values.Where(v => v.Key.StartsWith(prefix, StringComparison.Ordinal) && v.Key.EndsWith(".Type", StringComparison.Ordinal))) { string key = pair.Value; ITaskProcessorPollingQueueConfiguration config = result.Add(key); config.MaxWorkers = RedisConverter.ParseInteger(values[prefix + key + ".MaxWorkers"]); RedisTaskProcessorConfigurationRepository.Deserialize(values, config, prefix + key); } }
/// <summary> /// Initializes a new instance of the <see cref="RedisPollingQueueConfiguration"/> class by copying the properties of another instance. /// </summary> /// <param name="source">The instance whose properties to copy.</param> internal RedisPollingQueueConfiguration(ITaskProcessorPollingQueueConfiguration source) : base(source) { this.key = source.Key; this.maxWorkers = source.MaxWorkers; }
public void AddCopy(ITaskProcessorPollingQueueConfiguration source) { this.queues.Add(new FakePollingQueueConfiguration(source)); }
/// <inheritdoc /> void ITaskProcessorPollingQueuesConfiguration.AddCopy(ITaskProcessorPollingQueueConfiguration source) { throw new NotSupportedException(); }