コード例 #1
0
        public async Task <IActionResult> EnqueueAsync(
            [FromServices] IRabbitMQProducer rabbitMQProducer, // Using FromServices to allow lazy creation of RabbitMQ connection
            string source,
            string eventName = null)
        {
            await Task.Delay(100);

            FailGenerator.FailIfNeeded(1);

            var apiFullUrl = $"{timeApiUrl}/api/time/localday";

            if (logger.IsEnabled(LogLevel.Debug))
            {
                logger.LogDebug("Getting time from {url}", apiFullUrl);
            }

            var day = await httpClientFactory.CreateClient().GetStringAsync(apiFullUrl);

            var jsonResponse = new EnqueuedMessage {
                Day = day, EventName = eventName, Source = source ?? "N/a"
            };
            var message = System.Text.Json.JsonSerializer.Serialize(jsonResponse);

            rabbitMQProducer.Publish(message);

            metrics.TrackItemEnqueued(1, source);

            return(new JsonResult(jsonResponse));
        }
コード例 #2
0
        public RabbitMQMessageBus(IServiceProvider serviceProvider, ILogger <RabbitMQMessageBus> logger, RabbitMQMessageBusOptions options)
        {
            _serviceProvider = serviceProvider;
            _logger          = logger;
            _options         = options;

            _connection    = _serviceProvider.GetService <IConnection>();
            this._producer = new RabbitMQProducer(this._serviceProvider);
        }
コード例 #3
0
        public RabbitMQConsumer(IServiceProvider serviceProvider, IRabbitMQProducer producer)
        {
            _serviceProvider = serviceProvider;
            _producer        = producer;

            _logger  = serviceProvider.GetService <ILogger <RabbitMQConsumer> >();
            _options = serviceProvider.GetService <RabbitMQMessageBusOptions>();

            _connection             = _serviceProvider.GetService <IConnection>();
            _channel                = _connection.CreateModel();
            _channel.ModelShutdown += _channel_ModelShutdown;
            _autoAck                = _options.AutoAck;
        }
コード例 #4
0
        public RabbitMQDelayConsumer(IServiceProvider serviceProvider, IRabbitMQProducer producer)
        {
            _serviceProvider = serviceProvider;
            _producer        = producer;

            _logger  = serviceProvider.GetService <ILogger <RabbitMQDelayConsumer> >();
            _options = serviceProvider.GetService <RabbitMQMessageBusOptions>();

            _connection = _serviceProvider.GetService <IConnection>();
            _channel    = _connection.CreateModel();

            _autoAck          = false; // _options.AutoAck;
            ManualCommitBatch = 1;     // _options.ManualCommitBatch;
        }
コード例 #5
0
ファイル: MQApp.cs プロジェクト: flyingkoala/RabbitMQDemo
 public MQApp(IRabbitMQProducer mqProducer)//HeyGearsConfigService service, IRedis redis,
 {
     //_config = service.config;
     //_redis = redis;
     _mqProducer = mqProducer;
 }
コード例 #6
0
ファイル: Worker.cs プロジェクト: harris-boyce/Phema.RabbitMQ
 public Worker(IRabbitMQProducer producer)
 {
     this.producer = producer;
 }
コード例 #7
0
ファイル: HomeController.cs プロジェクト: Poepon/JK
 public HomeController(IRabbitMQProducer rabbitMQProducer)
 {
     this.rabbitMQProducer = rabbitMQProducer;
 }