static void Main(string[] args) { var hostBuilder = RabbitMQHost.CreateDefaultBuilder(args); hostBuilder.ConfigureServices((hostbuilderContext, services) => { services.AddLogging(b => { b.SetMinimumLevel(LogLevel.Information); b.AddDebug(); b.AddConsole(); }); // Add queue to be declared services.AddRabbitQueue(new Queue("myqueue")); }); using (var host = hostBuilder.Start()) { var admin = host.Services.GetRabbitAdmin(); var template = host.Services.GetRabbitTemplate(); try { template.ConvertAndSend("myqueue", "foo"); var foo = template.ReceiveAndConvert <string>("myqueue"); Console.WriteLine(foo); } finally { // Delete queue and shutdown container admin.DeleteQueue("myqueue"); } } }
public async Task <int> Execute() { try { var configuration = new RabbitMQHostConfiguration(); var configurationManager = new RabbitMQHostConfigurationManager(); await configurationManager.Initialize(configuration); var pingHandler = new PingHandler(Id); configuration.AddHandlingRules(pingHandler, (ht, mt) => "Pings"); var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; using (var host = RabbitMQHost.Start(configuration, cancellationToken)) { Console.WriteLine($"[{Id}] Listening..."); await Execute(host, cancellationToken); await UserInterrupt.Wait(cancellationToken); } cancellationTokenSource.Cancel(); } catch (OperationCanceledException) { // Ignore } Console.WriteLine($"[{Id}] Stopping..."); return(0); }
public static IHostBuilder CreateHostBuilder(string[] args) => RabbitMQHost.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { // Add queue to be declared services.AddRabbitQueue(new Queue("myqueue")); // Add the rabbit listener services.AddSingleton <MyRabbitListener>(); services.AddRabbitListeners <MyRabbitListener>(); services.AddSingleton <IHostedService, MyRabbitSender>(); });
public static IHostBuilder CreateHostBuilder(string[] args) => RabbitMQHost.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { // Add queue to be declared services.AddRabbitQueue(new Queue("myqueue")); // Add a configurer to configure listener endpoint services.AddSingleton <IRabbitListenerConfigurer, MyRabbitEndpointConfigurer>(); // Add a message sender services.AddSingleton <IHostedService, MyRabbitSender>(); });
public static IHostBuilder CreateHostBuilder(string[] args) => RabbitMQHost.CreateDefaultBuilder(args) .ConfigureServices((hostContext, services) => { // Add queue to be declared services.AddRabbitQueue(new Queue("myqueue")); services.AddRabbitDirecListenerContainer("manualContainer", (p, container) => { var logFactory = p.GetRequiredService <ILoggerFactory>(); container.ApplicationContext = p.GetApplicationContext(); container.SetQueueNames("myqueue"); container.MessageListener = new MyMessageListener(logFactory.CreateLogger <MyMessageListener>()); }); // Add a message sender services.AddSingleton <IHostedService, MyRabbitSender>(); });
public static IHostBuilder CreatHostBuilder(string[] args) => RabbitMQHost.CreateDefaultBuilder(args) .ConfigureServices((hostBuilderContext, services) => { // Add queue to be declared services.AddRabbitQueue(new Queue("myqueue")); services.AddRabbitDirecListenerContainer((p) => { var context = p.GetRequiredService <IApplicationContext>(); var factory = p.GetRequiredService <IRabbitListenerContainerFactory>(); var logFactory = p.GetRequiredService <ILoggerFactory>(); var listener = new MyMessageListener(logFactory.CreateLogger <MyMessageListener>()); var endpoint = new SimpleRabbitListenerEndpoint(context); endpoint.SetQueueNames("myqueue"); endpoint.MessageListener = listener; var container = factory.CreateListenerContainer(endpoint) as DirectMessageListenerContainer; container.ServiceName = "manualContainer"; return(container); }); // Add a message sender services.AddSingleton <IHostedService, MyRabbitSender>(); });
protected override async Task Execute(RabbitMQHost host, CancellationToken cancellationToken) { var ping = new Ping(Id, _count); await host.Bus.Send(ping, cancellationToken : cancellationToken); }
protected virtual Task Execute(RabbitMQHost host, CancellationToken cancellationToken) { return(Task.CompletedTask); }
public static IHostBuilder CreateHostBuilder(string[] args) => RabbitMQHost.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); });