예제 #1
0
        public async Task <IEnumerable <string> > GetDataForTrip(string id)
        {
            List <string> allnames = new List <string>();

            using (SqlConnection connection = new SqlConnection(_connectionString))
            {
                await connection.OpenAsync();

                SqlCommand cmd = new SqlCommand("SELECT TOP (100000) * FROM tblTrip", connection);
                using (var reader = cmd.ExecuteReader())
                {
                    using (var span = CustomSpan.Create(this, SpanType.INTERMEDIATE, "Process Data Items"))
                    {
                        int i = 0;
                        while (reader.Read())
                        {
                            i++;
                            allnames.Add(reader["Id"].ToString());
                        }
                        span.SetTag("elements", i.ToString());
                    }
                }
            }

            return(allnames);
        }
        public static async Task ReceiveMessageAsync(IAmazonSQS amazonSQS)
        {
            ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest("http://localhost:9324/queue/test");

            receiveMessageRequest.MaxNumberOfMessages = 10;

            Message correlationMessage = null;
            ReceiveMessageResponse r   = await amazonSQS.ReceiveMessageAsync(receiveMessageRequest);

            List <DeleteMessageBatchRequestEntry> deleteReqEntries = new List <DeleteMessageBatchRequestEntry>(r.Messages.Count);

            correlationMessage = r.Messages.FirstOrDefault();

            using (var span = CustomSpan.Create()
                              .AsAWSSQSMessageReceive(receiveMessageRequest.QueueUrl))
            {
                span.WrapAction(() =>
                {
                    foreach (var message in r.Messages)
                    {
                        Console.WriteLine("Messageid: " + message.MessageId);
                        Console.WriteLine("Message body:" + message.Body);
                        Console.WriteLine("Recepit: " + message.ReceiptHandle);
                        Console.WriteLine("MD5Body: " + message.MD5OfBody);
                        Console.WriteLine();

                        deleteReqEntries.Add(new DeleteMessageBatchRequestEntry(message.MessageId, message.ReceiptHandle));
                    }
                }, true);

                span.AsChildOf(() => GetDisInfo(correlationMessage));
            }
            DeleteMessageBatchRequest deleteMessageBatchRequest = new DeleteMessageBatchRequest("http://localhost:9324/queue/test", deleteReqEntries);
            var response = await amazonSQS.DeleteMessageBatchAsync(deleteMessageBatchRequest);
        }
예제 #3
0
 private void FrmPopup_Load(object sender, EventArgs e)
 {
     using (var span = CustomSpan.Create(this, SpanType.INTERMEDIATE, "Popup Form Load"))
     {
         Thread.Sleep(10);
     }
 }
예제 #4
0
 private void DoThat(StringBuilder state)
 {
     // create one intermediate span for this subtask
     using (var thatSpan = CustomSpan.Create(this, SpanType.INTERMEDIATE))
     {
         state.Append("...That...");
         // and annotate the span with something for us to see
         thatSpan.SetTag("state", state.ToString());
         Thread.Sleep(5);
     }
 }
 private List <Country> TransformApiResultToCountryList(HttpResponseMessage response)
 {
     // let's create an intermediate span, which will show us how much the
     // transformation-logic  contributes to the overall runtime.
     using (var span = CustomSpan.Create(this, SpanType.INTERMEDIATE))
     {
         HttpContent content   = response.Content;
         var         decoded   = content.ReadAsStringAsync().Result;
         var         countries = Newtonsoft.Json.JsonConvert.DeserializeObject <List <Country> >(decoded);
         span.SetData("count", countries.Count.ToString());
         return(countries);
     }
 }
        private void FillList(List <Country> countries)
        {
            // create a span for filling the list with the result from the service
            // this will let us know whether this loop takes long or not
            using (var span = CustomSpan.Create(this, SpanType.INTERMEDIATE))
            {
                listView1.Items.Clear();

                foreach (Country country in countries)
                {
                    ListViewItem item = new ListViewItem(new string[] { country.Name, country.Capital, country.Capital, country.Population.ToString() });
                    listView1.Items.Add(item);
                }
            }
        }
예제 #7
0
        public void StreamingPull()
        {
            // First create a topic.
            PublisherServiceApiClient publisherService = PublisherServiceApiClient.CreateAsync().Result;
            TopicName topicName = new TopicName("k8s-brewery", "sdk-example-test-topic");

            try
            {
                publisherService.CreateTopic(topicName);
            }
            catch
            {
            }

            // Subscribe to the topic.
            SubscriberServiceApiClient subscriberService = SubscriberServiceApiClient.CreateAsync().Result;
            SubscriptionName           subscriptionName  = new SubscriptionName("k8s-brewery", "sdk-example-test-subscription");

            try
            {
                subscriberService.CreateSubscription(subscriptionName, topicName, pushConfig: null, ackDeadlineSeconds: 60);
            }
            catch
            {
            }

            // Pull messages from the subscription using SubscriberClient.
            SubscriberClient     subscriber       = SubscriberClient.CreateAsync(subscriptionName).Result;
            List <PubsubMessage> receivedMessages = new List <PubsubMessage>();

            // Start the subscriber listening for messages.
            subscriber.StartAsync((msg, cancellationToken) =>
            {
                using (var span = CustomSpan.Create()
                                  .AsGCPubSubReceive(subscriptionName.SubscriptionId, subscriptionName.ProjectId)
                                  .AsChildOf(() => GetDisInfo(msg)))
                {
                    span.WrapAction(() =>
                    {
                        receivedMessages.Add(msg);
                        Console.WriteLine($"[Test] Received message {msg.MessageId} published at {msg.PublishTime.ToDateTime()}");
                        Console.WriteLine($"[Test] Text: '{msg.Data.ToStringUtf8()}'");
                    }, true);
                    return(Task.FromResult(SubscriberClient.Reply.Ack));
                }
            });
        }
        static void Main(string[] args)
        {
            GCPublisherService  gcPublisherService  = new GCPublisherService();
            GCSubscriberService gcSubscriberService = new GCSubscriberService();

            gcPublisherService.StartPeriodicallyPublish(2000);
            gcSubscriberService.StreamingPull();

            PublisherServiceApiClient publisher = PublisherServiceApiClient.Create();
            TopicName topicName = new TopicName("k8s-brewery", "sdk-example-test-topic-2");

            try
            {
                publisher.CreateTopic(topicName);
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to create topic");
            }

            // Publish a message to the topic.
            PubsubMessage message = new PubsubMessage
            {
                Data       = ByteString.CopyFromUtf8("Message "),
                Attributes =
                {
                    { "Description", "Simple text message " }
                }
            };

            publisher.Publish(topicName, new[] { message });

            SubscriberServiceApiClient subscriber       = SubscriberServiceApiClient.Create();
            SubscriptionName           subscriptionName = new SubscriptionName("k8s-brewery", "sdk-example-test-subscription-2");

            try
            {
                subscriber.CreateSubscription(subscriptionName, topicName, pushConfig: null, ackDeadlineSeconds: 60);
            }
            catch (Exception)
            {
                Console.WriteLine("Failed to create subscription");
            }

            PullResponse response = subscriber.Pull(subscriptionName, returnImmediately: true, maxMessages: 100);

            foreach (ReceivedMessage received in response.ReceivedMessages)
            {
                using (var span = CustomSpan.Create()
                                  .AsGCPubSubReceive(subscriptionName.SubscriptionId, subscriptionName.ProjectId)
                                  .AsChildOf(() => GCSubscriberService.GetDisInfo(received.Message)))
                {
                    span.WrapAction(() =>
                    {
                        PubsubMessage msg = received.Message;
                        Console.WriteLine($"Received message {msg.MessageId} published at {msg.PublishTime.ToDateTime()}");
                        Console.WriteLine($"Text: '{msg.Data.ToStringUtf8()}'");
                        Console.WriteLine($"Attributes: '{string.Join(",", msg.Attributes.Select(x => $"{x.Key}-{x.Value}"))}'");
                    }, true);
                }
            }
            if (response.ReceivedMessages.Count > 0)
            {
                subscriber.Acknowledge(subscriptionName, response.ReceivedMessages.Select(m => m.AckId));
            }

            Console.WriteLine("Press any key to close ...");
            Console.ReadKey();
        }