コード例 #1
0
        private static async Task ConsumirOffsetAsync()
        {
            var consumer = new ConsumidorPorOffset(GerarBrokerConfig(), _consumerGroup);

            var cmd = string.Empty;

            Console.WriteLine("Consumir qual offset?");
            cmd = Console.ReadLine();
            long offset;

            if (long.TryParse(cmd, out offset))
            {
                var watermark = consumer.BuscarOffsetsDisponiveis(_topico, _consumerGroup);
                if (watermark != null)
                {
                    if (offset > watermark.High || offset < watermark.Low)
                    {
                        Console.WriteLine($"Erro: offset fora do range disponível ({watermark.Low} a {watermark.High} ");
                        Console.ReadKey();
                        return;
                    }
                }
                await consumer.Consumir(_topico, offset);
            }
            else
            {
                Console.WriteLine("Erro: offset deve ser um número.");
            }

            Console.WriteLine("Pressione qualquer tecla para continuar.");
            Console.ReadKey();
        }
コード例 #2
0
        public static void BuscarOffsetsDisponiveis()
        {
            var consumer  = new ConsumidorPorOffset(GerarBrokerConfig(), _consumerGroup);
            var watermark = consumer.BuscarOffsetsDisponiveis(_topico, _consumerGroup);

            if (watermark != null)
            {
                Console.WriteLine($"Os offsets disponíveis vão de #{watermark.Low} a #{watermark.High}).");
            }
            else
            {
                Console.WriteLine($"Não foi possível buscar os offsets disponíveis");
            }
            Console.WriteLine("Pressione qualquer tecla para continuar.");
            Console.ReadKey();
        }