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); }
/// <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); }
/// <summary> /// Sets Horse MQ Options /// </summary> public static HorseMqBuilder AddOptions(this HorseMqBuilder builder, HorseMqOptions options) { builder.Server.Options = options; return(builder); }