public static void Create(MessagingPlatform messagingPlatform) { try { IConsumeMessage consumeMessage = new ConsumeMessage(); while (true) { Thread.Sleep(1000); string consumedMessage = consumeMessage.ConsumeMessages(Environment.GetEnvironmentVariable("queueName")); if (!string.IsNullOrEmpty(consumedMessage)) { RabbitMQResponse response = RabbitMQResponse.Create(consumedMessage); ExceptionChat = response.Payload.ChatId; _telegramBotClient.SendTextMessageAsync(response.Payload.ChatId, response.Payload.Message).GetAwaiter().GetResult(); } GC.Collect(); } } catch (Exception ex) { new ExceptionResponsibility(ex, messagingPlatform); Console.WriteLine(ex.ToString()); Create(messagingPlatform); } }
public static void Main(string[] args) { Console.WriteLine("[x] Waiting for message..."); ConsumeMessage getMessage = new ConsumeMessage(); getMessage.OpenConnection(); getMessage.Receive(MessageSeverity.Warning); }
private void SetupAndPublish(IBunny bunny, string queueName = queue) { var msg = new ConsumeMessage(); var bytes = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(msg)); var channel = bunny.Channel(newOne: true); var prop = channel.CreateBasicProperties(); prop.Persistent = true; channel.BasicPublish("", queueName, false, prop, bytes); }
public async Task GetSucceedsIfMessageIsAvailable() { IBunny bunny = Bunny.ConnectSingle(ConnectSimple.BasicAmqp); var msg = new ConsumeMessage(); var bytes = Config.Serialize(msg); bunny.Channel(newOne: true).BasicPublish("", get, false, null, bytes); var opResult = await bunny.Consumer <ConsumeMessage>(get).AsAutoAck().GetAsync(carrot => Task.CompletedTask); Assert.NotNull(opResult); Assert.Equal(OperationState.Get, opResult.State); Assert.NotNull(opResult.Message.MyText); }
public ConsumeConcurrentlyStatus OnConsumeMessage(List l, ConsumeConcurrentlyContext ccc) { while (ConsumeBlock) { Thread.Sleep(100); } List <Message> list = l.toArray().Cast <Message>().ToList(); if (ConsumeMessage != null) { return(ConsumeMessage.Invoke(this, new ConsumeEventArgs { Messages = list, Context = ccc })); } else { throw new Exception("没有注册ConsumeMessage事件"); } }
public async Task MultipleCallToConsumeAlwaysReturnUccess() { IBunny bunny = Bunny.ConnectSingle(ConnectSimple.BasicAmqp); ConsumeMessage result = null; var consumer = bunny.Consumer <ConsumeMessage>(queue).Callback(async carrot => { result = carrot.Message; var opResult = await carrot.SendAckAsync(); Assert.True(opResult.IsSuccess); Assert.NotNull(result); Assert.Equal(nameof(ConsumeMessage), result.MyText); }); var result1 = await consumer.StartConsumingAsync(); var result2 = await consumer.StartConsumingAsync(); var result3 = await consumer.StartConsumingAsync(); Assert.Equal(result1, result2, new EqualityOpResult()); Assert.Equal(result1, result3, new EqualityOpResult()); Assert.Equal(result2, result2, new EqualityOpResult()); }