Example #1
0
        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);
        }
Example #3
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>();
        });
Example #4
0
        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>();
        });
Example #5
0
        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>();
        });
Example #6
0
        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>();
        });
Example #7
0
 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);
 }
Example #9
0
 public static IHostBuilder CreateHostBuilder(string[] args) =>
 RabbitMQHost.CreateDefaultBuilder(args)
 .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup <Startup>(); });