Esempio n. 1
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            try
            {
                while (true)
                {
                    if (!_connection.IsOpen)
                    {
                        _connection.Close();
                        _channel.Close();
                        Console.WriteLine("Not connected to RabbitMQ");
                        _connection = _factory.CreateConnection();
                        _channel    = _connection.CreateModel();
                        _channel.AddChannels();
                        RabbitMQExtensions.EnsureExistRabbitMqVirtualHost(_configurations, _connection);
                    }
                    else
                    {
                        Console.WriteLine("Connected to RabbitMQ...");
                    }

                    await Task.Delay(2000);
                }
            }
            catch
            {
                _stoppingCts = new CancellationTokenSource();

                await ExecuteAsync(_stoppingCts.Token);
            }
        }
Esempio n. 2
0
        public IActionResult ShowQueueItem(
            [FromServices] RabbitMQConfigurations configurations,
            [FromServices] ConnectionFactory factory,
            [FromServices] IConnection connection,
            [FromServices] IConsumeRabbitMQService consumer,
            string kitchenAreaName,
            string status)
        {
            try
            {
                using (var channel = connection.CreateModel())
                {
                    var queue = channel.QueueDeclare(queue: kitchenAreaName + " - " + status,
                                                     durable: false,
                                                     exclusive: false,
                                                     autoDelete: false,
                                                     arguments: null);

                    var result = RabbitMQExtensions.GetAllMessages(queue, configurations, queue.QueueName);

                    if (result == null)
                    {
                        return(BadRequest());
                    }
                    return(Ok(result));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            services.AddSingleton <IConfiguration> (Configuration);

            var rabbitMQConfigurations = new RabbitMQConfigurations();

            new ConfigureFromConfigurationOptions <RabbitMQConfigurations>(
                Configuration.GetSection("RabbitMQConfigurations"))
            .Configure(rabbitMQConfigurations);


            var factory = new ConnectionFactory()
            {
                HostName    = rabbitMQConfigurations.HostName,
                Port        = rabbitMQConfigurations.Port,
                UserName    = rabbitMQConfigurations.UserName,
                Password    = rabbitMQConfigurations.Password,
                VirtualHost = rabbitMQConfigurations.VirtualHost
            };



            services.AddSingleton(factory);

            var connection = factory.CreateConnection();


            RabbitMQExtensions.EnsureExistRabbitMqVirtualHost(rabbitMQConfigurations, connection);



            var channel = connection.CreateModel();



            services.AddScopedServices();
            services.AddTransientServices();
            services.AddSingletonServices(ServiceProvider);

            channel.AddChannels();
            channel.ConfirmSelect();

            services.AddSingleton(rabbitMQConfigurations);
            services.AddLogging();
            services.AddSingleton(channel);
            services.AddSingleton(connection);
        }