Exemplo n.º 1
0
 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);
     }
 }
Exemplo n.º 2
0
        public static void Main(string[] args)
        {
            Console.WriteLine("[x] Waiting for message...");

            ConsumeMessage getMessage = new ConsumeMessage();

            getMessage.OpenConnection();
            getMessage.Receive(MessageSeverity.Warning);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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事件");
            }
        }
Exemplo n.º 6
0
        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());
        }