コード例 #1
0
        /// <summary>
        /// Removes queue from configurations
        /// </summary>
        public void Remove(HorseQueue queue)
        {
            lock (_optionsLock)
            {
                QueueConfiguration queueConfiguration = Config.Queues.FirstOrDefault(x => x.Name == queue.Name);

                if (queueConfiguration != null)
                {
                    Config.Queues.Remove(queueConfiguration);
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// Adds new queue into configurations
        /// </summary>
        public bool Add(HorseQueue queue, string filename)
        {
            QueueOptionsConfiguration queueOptions = queue.Options.ToConfiguration();

            QueueConfiguration queueConfiguration = new QueueConfiguration();

            queueConfiguration.Configuration = queueOptions;
            queueConfiguration.Name          = queue.Name;
            queueConfiguration.File          = filename;
            queueConfiguration.Queue         = queue;

            if (queue.DeliveryHandler is IPersistentDeliveryHandler deliveryHandler)
            {
                queueConfiguration.DeliveryHandler = deliveryHandler.Key;
                queueConfiguration.DeleteWhen      = Convert.ToInt32(deliveryHandler.DeleteWhen);
                queueConfiguration.ProducerAck     = Convert.ToInt32(deliveryHandler.ProducerAckDecision);
            }

            lock (_optionsLock)
                Config.Queues.Add(queueConfiguration);

            return(true);
        }