Exemple #1
0
        static async Task Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory())
                         .AddJsonFile("appsettings.json", optional: true)
                         //.AddEnvironmentVariables()
                         .Build();

            var insights = InsightsHelper.InitializeTelemetryClient(
                config,
                "Examples.Pipeline.MessageGenerator",
                $"cloudRoleInstance-{Environment.MachineName}");

            int rpm = args.Length > 0 ? int.Parse(args[0]) : 60;


            var client = new QueueClient(config["ServiceBusConnectionString"], config["MessageGenerator.QueueName"]);

            Console.WriteLine($"Sending messages at ~{rpm} RPM to queue \"{config["MessageGenerator.QueueName"]}\".");
            insights.TrackTrace($"Sending messages at {rpm} RPM to queue \"{config["MessageGenerator.QueueName"]}\".");

            int errors = 0;
            int i      = 1;

            while (1 == 1)
            {
                try
                {
                    // Create a new message to send to the queue.
                    string messageBody = $"Message {i}";
                    var    message     = new Message(Encoding.UTF8.GetBytes(messageBody));
                    message.UserProperties.Add("MessageNumber", i);

                    // Write the body of the message to the console.
                    Console.WriteLine($"Sending message: {messageBody}");

                    // Send the message to the queue.
                    await client.SendAsync(message);

                    insights.TrackEvent(
                        "Examples.Pipeline.MessageGenerator/QueueMessageSent",
                        new Dictionary <string, string>(
                            message.UserProperties.Select(p => new KeyValuePair <string, string>(p.Key, p.Value.ToString()))));
                }
                catch (Exception exception)
                {
                    errors++;
                    Console.Error.WriteLine($"Message {i} :: Exception: {exception.Message}");
                    insights.TrackException(exception);
                    if (errors > 10)
                    {
                        throw;
                    }
                }

                await Task.Delay(60000 / rpm);

                i++;
            }
        }
Exemple #2
0
        static async Task Main()
        {
            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory())
                         .AddJsonFile("appsettings.json", optional: true)
                         //.AddEnvironmentVariables()
                         .Build();

            _insights = InsightsHelper.InitializeTelemetryClient(
                config,
                "Examples.Pipeline.ServiceBusReceiver",
                $"cloudRoleInstance-{Environment.MachineName}"
                );

            _queueClient = new QueueClient(config["ServiceBusConnectionString"], config["ServiceBusReceiver.QueueName"]);


            // Register QueueClient's MessageHandler and receive messages in a loop
            RegisterOnMessageHandlerAndReceiveMessages(_queueClient);

            Console.WriteLine($"Ready: {_queueClient}");

            while (true)
            {
                await Task.Delay(200);
            }

            //await _queueClient.CloseAsync();
        }
Exemple #3
0
        static async Task Main(string[] args)
        {
            Console.WriteLine("Examples.Pipeline.EventProcessor");

            var config = new ConfigurationBuilder()
                         .SetBasePath(Directory.GetCurrentDirectory())
                         .AddJsonFile("appsettings.json", optional: true)
                         //.AddEnvironmentVariables()
                         .Build();

            var insights = InsightsHelper.InitializeTelemetryClient(
                config,
                "Examples-Pipeline-EventProcessor",
                $"cloudRoleInstance-{Environment.MachineName}");

            var observer = new EventProcessorObserver();

            var host = InitializeEventProcessorHost(config);
            await host.RegisterEventProcessorFactoryAsync(
                new ForwardToQueueEventProcessorFactory(config, insights, observer),
                new EventProcessorOptions
            {
                MaxBatchSize  = 100,
                PrefetchCount = 200
            });

            Console.WriteLine($"Ready: {host}");

            while (true)
            {
                await Task.Delay(10000);

                Console.WriteLine("============================");
                Console.WriteLine(observer.GetMetricsString());
            }
        }