public void SendQuotesToCalculationInConsumer(List <Quote> quotes, Parameters parameters, string exchange, string queueSendTo) { IndicatorCalculationElements elements = new IndicatorCalculationElements { Quotes = quotes, Parameters = parameters }; InitializeProducer(exchange, queueSendTo); _producer.Process(elements); }
public override void GenerateAndPublishMessage(IModel channel, IndicatorCalculationElements indicatorElements) { //serializujemy oraz przekształcamy w tablicę bajtów var body = EncryptionHelper.StringToUtf8(JsonSerializer.ConvertObjectToJsonString <IndicatorCalculationElements>(indicatorElements)); channel.BasicPublish(exchange: _exchange, routingKey: _queueSendTo, basicProperties: null, body: body); //oczekujemy na potwierdzenie, że przesyłka dotarła do exchange channel.WaitForConfirmsOrDie(); Console.WriteLine($"RabbitMQ Producer sent quotes to Consumers."); }
public override void Process(IndicatorCalculationElements elements) { try { using (var connection = RabbitMQConnectionHelper.GetConnection()) { using (var channel = connection.CreateModel()) { //umożliwia potwierdzanie, że przesyłkę dostarczono do Exchange channel.ConfirmSelect(); //generujemy nową wiadomość GenerateAndPublishMessage(channel, elements); } } } catch (Exception e) { Console.WriteLine(e); throw e; } }
public abstract void GenerateAndPublishMessage(IModel channel, IndicatorCalculationElements elements);
public abstract void Process(IndicatorCalculationElements elements);