public void RegisterQueueConfiguration(string queueName, Action <IServiceBusReceiveEndpointConfigurator, IServiceBusHost> action) { if (!QueueConfigurations.TryGetValue(queueName, out var actions)) { actions = new List <Action <IServiceBusReceiveEndpointConfigurator, IServiceBusHost> >(); QueueConfigurations[queueName] = actions; } actions.Add(action); }
/// <summary> /// /// </summary> /// <param name="queueName">Define Your QueueName, By default "_CoolBus" suffix will be added with your queue name</param> /// <param name="queueConfiguration">You can define queue configuration from here like Prefetch Count,Concurrent Thread Limit you can check following example. /// e => ///{ /// e.LoadFrom(container); /// e.PrefetchCount = 1; /// e.UseConcurrencyLimit(1); ///} /// NOTE: You must write e.LoadFrom(container); if you use queueConfiguration /// </param> /// <returns></returns> public MassTransitRabbitMqHostingService ListenOn(string queueName, Action <IRabbitMqReceiveEndpointConfigurator> queueConfiguration = null) { /* * if (queueConfiguration == null) * queueConfiguration = configurator => * { * configurator.LoadFrom(Container); * }; */ QueueConfigurations.Add(queueName + "_CoolBus", queueConfiguration); return(this); }
static void Main(string[] args) { Console.WriteLine("started..."); Func <int, string> producer = (index) => { System.Threading.Thread.Sleep(1500); var todoSome = $"index:{index}"; Console.WriteLine($" + producer => {todoSome}"); return(todoSome); }; Action <string> consumer = (result) => { System.Threading.Thread.Sleep(1000); Console.WriteLine($" - consumered => {result}"); }; var queueConfigurations = new QueueConfigurations(3, 1); var queueService = new QueueService <string>(queueConfigurations); queueService.StartProcess(100, producer, consumer); foreach (var ex in queueService.Exceptions) { Console.WriteLine($"Exception-> Method:{ex.Method}|Message:{ex.Message}"); } Console.WriteLine("end..."); Console.ReadLine(); }
public MassTransitRabbitMqHostingService ListenEventsOn(string queueName, Action <IRabbitMqReceiveEndpointConfigurator> configure) { QueueConfigurations.Add(queueName, configure); return(this); }