示例#1
0
        public async Task Initialize()
        {
            HorseMqOptions horseMqOptions = new HorseMqOptions();

            horseMqOptions.AutoQueueCreation  = true;
            horseMqOptions.AcknowledgeTimeout = TimeSpan.FromSeconds(90);
            horseMqOptions.MessageTimeout     = TimeSpan.FromSeconds(12);
            horseMqOptions.Status             = QueueStatus.Broadcast;

            Server = HorseMqBuilder.Create()
                     .AddOptions(horseMqOptions)
                     .AddQueueEventHandler(new TestQueueHandler(this))
                     .UseDeliveryHandler(d => Task.FromResult <IMessageDeliveryHandler>(new TestDeliveryHandler(this)))
                     .AddClientHandler(new TestClientHandler(this))
                     .AddAdminAuthorization <TestAdminAuthorization>()
                     .Build();

            await Server.CreateQueue("broadcast-a", o => o.Status = QueueStatus.Broadcast);

            await Server.CreateQueue("push-a", o => o.Status = QueueStatus.Push);

            await Server.CreateQueue("push-a-cc", o => o.Status = QueueStatus.Push);

            await Server.CreateQueue("rr-a", o => o.Status = QueueStatus.RoundRobin);

            await Server.CreateQueue("pull-a", o => o.Status = QueueStatus.Pull);

            await Server.CreateQueue("cache-a", o => o.Status = QueueStatus.Cache);
        }
示例#2
0
        /// <summary>
        /// Creates new Messaging Queue Server
        /// </summary>
        public HorseMq(HorseMqOptions options)
        {
            Options = options ?? new HorseMqOptions();

            _routers = new SafeList <IRouter>(256);
            _queues  = new SafeList <HorseQueue>(256);
            _clients = new SafeList <MqClient>(2048);

            NodeManager = new NodeManager(this);

            NodeManager.Initialize();

            OnClientConnected    = new ClientEventManager(EventNames.ClientConnected, this);
            OnClientDisconnected = new ClientEventManager(EventNames.ClientDisconnected, this);
            OnQueueCreated       = new QueueEventManager(this, EventNames.QueueCreated);
            OnQueueUpdated       = new QueueEventManager(this, EventNames.QueueUpdated);
            OnQueueRemoved       = new QueueEventManager(this, EventNames.QueueRemoved);
        }
示例#3
0
 /// <summary>
 /// Sets Horse MQ Options
 /// </summary>
 public static HorseMqBuilder AddOptions(this HorseMqBuilder builder, HorseMqOptions options)
 {
     builder.Server.Options = options;
     return(builder);
 }