예제 #1
0
        public static DispatcherPartitionSetting Create()
        {
            var partitionSetting = new DispatcherPartitionSetting();

            partitionSetting.MessagePumpBatchSize = 1;
            partitionSetting.MaxPushQueueLength   = 1000000;
            partitionSetting.MaximumDeliveryCount = 3;

            partitionSetting.ServiceConfigureSetting = new ServiceConfigureSetting();

            // Instant Queue
            partitionSetting.InstantQueueSetting = new DispatcherQueueSetting("InstantQueue", partitionSetting)
            {
                DeliveryType       = DeliveryType.Instant,
                MaxQueueLength     = 100000,
                PushWorkerCount    = 1,
                MaximumPumpRetries = 3,
                RetryDelay         = TimeSpan.Zero
            };

            // Delayed Queue
            partitionSetting.DelayedQueueSettings = new List <DispatcherQueueSetting>
            {
                new DispatcherQueueSetting("DelayedQueue_0_10s", partitionSetting)
                {
                    DeliveryType       = DeliveryType.Delayed,
                    MaxQueueLength     = 10000,
                    PushWorkerCount    = 1,
                    MaximumPumpRetries = 3,
                    RetryDelay         = TimeSpan.FromSeconds(10)
                }
            };

            return(partitionSetting);
        }
 public DispatcherQueueSetting(string name, DispatcherPartitionSetting partitionSetting)
 {
     this.Name             = name;
     this.PartitionSetting = partitionSetting;
 }