コード例 #1
0
        private static void Send_Message_to_a_Queue_with_Delay()
        {
            var queue = new KubeMQ.SDK.csharp.Queue.Queue("QueueName", "ClientID", "localhost:50000", null, tempAuthToken);

            var resSend = queue.SendQueueMessage(new KubeMQ.SDK.csharp.Queue.Message {
                Body     = KubeMQ.SDK.csharp.Tools.Converter.ToByteArray("some-simple_queue-queue-message"),
                Metadata = "emptyMeta",
                Policy   = new KubeMQ.Grpc.QueueMessagePolicy {
                    DelaySeconds = 5
                }
            });

            if (resSend.IsError)
            {
                Console.WriteLine($"Message enqueue error, error:{resSend.Error}");
            }
        }
コード例 #2
0
        private static void Send_Message_to_a_Queue()
        {
            var queue = new KubeMQ.SDK.csharp.Queue.Queue("QueueName", "ClientID", "localhost:50000", null, tempAuthToken);

            try {
                var resSend = queue.SendQueueMessage(new KubeMQ.SDK.csharp.Queue.Message {
                    Body     = KubeMQ.SDK.csharp.Tools.Converter.ToByteArray("some-simple_queue-queue-message"),
                    Metadata = "someMeta"
                });
                if (resSend.IsError)
                {
                    Console.WriteLine($"Message enqueue error, error:{resSend.Error}");
                }
            } catch (Exception ex) {
                Console.WriteLine($"Message enqueue error, error:{ex.Message}");
            }
        }
コード例 #3
0
        private static void Ack_All_Messages_In_a_Queue()
        {
            var queue = new KubeMQ.SDK.csharp.Queue.Queue("QueueName", "ClientID", "localhost:50000", null,
                                                          tempAuthToken);

            try {
                var resAck = queue.AckAllQueueMessages();
                if (resAck.IsError)
                {
                    Console.WriteLine($"AckAllQueueMessagesResponse error, error:{resAck.Error}");
                    return;
                }
                Console.WriteLine($"Ack All Messages:{resAck.AffectedMessages} completed");
            } catch (System.Exception ex) {
                Console.WriteLine($"AckAllQueueMessagesResponse error, error:{ex.Message}");
            }
        }
コード例 #4
0
        private static void Peek_Messages_from_a_Queue()
        {
            var queue = new KubeMQ.SDK.csharp.Queue.Queue("QueueName", "ClientID", "localhost:50000", null, tempAuthToken)
            {
                WaitTimeSecondsQueueMessages = 1
            };
            var resPeak = queue.PeekQueueMessage(10);

            if (resPeak.IsError)
            {
                Console.WriteLine($"Message peak error, error:{resPeak.Error}");
                return;
            }
            Console.WriteLine($"Peaked {resPeak.MessagesReceived} Messages:");
            foreach (var item in resPeak.Messages)
            {
                Console.WriteLine($"MessageID: {item.MessageID}, Body:{KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(item.Body)}");
            }
        }
コード例 #5
0
        private static void acallkmsgs(string queueName)
        {
            try
            {
                var q   = new KubeMQ.SDK.csharp.Queue.Queue(queueName, ClientID, KubeMQServerAddress);
                var res = q.AckAllQueueMessages();
                if (res.IsError)
                {
                    Console.WriteLine($"[DemoSender][acallkmsgs]message dequeue error, error:{res.Error}");
                    return;
                }
                Console.WriteLine("[DemoSender][acallkmsgs]acked all messages");
            }
            catch (Exception ex)
            {
                Console.WriteLine($"[DemoSender]Error while pinging to kubeMQ address:{ex.Message}");

                Console.WriteLine($"[DemoSender]Error while pinging to kubeMQ address:{KubeMQServerAddress}");
            }
        }
コード例 #6
0
        static void Main(string[] args)
        {
            var QueueName           = "hello-world-queue";
            var ClientID            = "test-queue-client-id2";
            var KubeMQServerAddress = "localhost:50000";


            KubeMQ.SDK.csharp.Queue.Queue queue = null;
            try
            {
                queue = new KubeMQ.SDK.csharp.Queue.Queue(QueueName, ClientID, KubeMQServerAddress);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            try
            {
                var res = queue.SendQueueMessage(new KubeMQ.SDK.csharp.Queue.Message
                {
                    Body     = KubeMQ.SDK.csharp.Tools.Converter.ToByteArray("some-simple_queue-queue-message"),
                    Metadata = "emptyMeta"
                });
                if (res.IsError)
                {
                    Console.WriteLine($"message enqueue error, error:{res.Error}");
                }
                else
                {
                    Console.WriteLine($"message sent at, {res.SentAt}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #7
0
        private static void peakmsgs(string queueName)
        {
            try
            {
                var q   = new KubeMQ.SDK.csharp.Queue.Queue(queueName, ClientID, KubeMQServerAddress);
                var res = q.PeekQueueMessage();
                if (res.IsError)
                {
                    Console.WriteLine($"[DemoSender][peakmsgs]message dequeue error, error:{res.Error}");
                    return;
                }
                foreach (var item in res.Messages)
                {
                    Console.WriteLine($"[DemoSender][peakmsgs]read:{KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(item.Body)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"[DemoSender]Error while pinging to kubeMQ address:{ex.Message}");

                Console.WriteLine($"[DemoSender]Error while pinging to kubeMQ address:{KubeMQServerAddress}");
            }
        }
コード例 #8
0
        static void Main(string[] args)
        {
            var QueueName           = "hello-world-queue";
            var ClientID            = "test-queue-client-id";
            var KubeMQServerAddress = "localhost:50000";


            KubeMQ.SDK.csharp.Queue.Queue queue = null;
            try
            {
                queue = new KubeMQ.SDK.csharp.Queue.Queue(QueueName, ClientID, KubeMQServerAddress);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            try
            {
                var msg = queue.ReceiveQueueMessages();
                if (msg.IsError)
                {
                    Console.WriteLine($"message dequeue error, error:{msg.Error}");
                    return;
                }
                Console.WriteLine($"Received {msg.MessagesReceived} Messages:");

                foreach (var item in msg.Messages)
                {
                    Console.WriteLine($"MessageID: {item.MessageID}, Body:{KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(item.Body)}");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #9
0
        private static void Transactional_Queue_Resend_Modified_Message()
        {
            var queue       = new KubeMQ.SDK.csharp.Queue.Queue("QueueName", "ClientID", "localhost:50000", null, tempAuthToken);
            var transaction = queue.CreateTransaction();

            // get message from the queue with visibility of 5 seconds and wait timeout of 10 seconds
            KubeMQ.SDK.csharp.Queue.Stream.TransactionMessagesResponse resRec;
            try {
                resRec = transaction.Receive(3, 5);
                if (resRec.IsError)
                {
                    Console.WriteLine($"Message dequeue error, error:{resRec.Error}");
                    return;
                }
            } catch (System.Exception ex) {
                Console.WriteLine($"Message dequeue error, error:{ex.Message}");
                return;
            }

            Console.WriteLine($"MessageID: {resRec.Message.MessageID}, Body:{KubeMQ.SDK.csharp.Tools.Converter.FromByteArray(resRec.Message.Body)}");
            var modMsg = resRec.Message;

            modMsg.Queue    = "receiverB";
            modMsg.Metadata = "new metadata";
            try {
                var resMod = transaction.Modify(modMsg);
                if (resMod.IsError)
                {
                    Console.WriteLine($"Message Modify error, error:{resMod.Error}");
                    return;
                }
            } catch (System.Exception ex) {
                Console.WriteLine($"Message Modify error, error:{ex.Message}");
                return;
            }
        }
コード例 #10
0
        static void Main(string[] args)
        {
            Console.WriteLine("[DemoSender]KubeMQ Queue pattern Simple Sender");
            Console.WriteLine($"[DemoSender] ClientID:{ClientID}");
            Console.WriteLine($"[DemoSender] QueueName:{QueueName}");
            Console.WriteLine($"[DemoSender] KubeMQServerAddress:{KubeMQServerAddress}");

            KubeMQ.SDK.csharp.Queue.Queue queue = creatreQueue();
            if (queue == null)
            {
                return;
            }

            Console.WriteLine($"Enter 'peak' to peak the {QueueName}_done");
            Console.WriteLine($"Enter 'ackall' to ack all in {QueueName}_done");
            Console.WriteLine($"Enter 'loopX' to loop X messages to {QueueName}");
            while (true)
            {
                if (queue == null)
                {
                    Thread.Sleep(1000);
                    queue = creatreQueue();

                    continue;
                }
                Console.WriteLine($"Enter new message to queue {QueueName}, peak, ackall, loopx");

                var readline = Console.ReadLine();
                if (readline == "peak")
                {
                    peakmsgs(QueueName + "_done");
                    continue;
                }
                if (readline == "ackall")
                {
                    acallkmsgs(QueueName + "_done");
                    continue;
                }
                if (readline.StartsWith("loop"))
                {
                    var splt = readline.Split("loop");
                    loopmsg(QueueName, splt[1]);
                    continue;
                }

                try
                {
                    var res = queue.SendQueueMessage(new KubeMQ.SDK.csharp.Queue.Message
                    {
                        Body     = KubeMQ.SDK.csharp.Tools.Converter.ToByteArray(readline),
                        Metadata = readline
                    });
                    if (res.IsError)
                    {
                        Console.WriteLine($"[DemoSender]Sent:{readline} error, error:{res.Error}");
                    }
                    else
                    {
                        Console.WriteLine($"[DemoSender]Sent:{readline}");
                    }
                }
                catch (RpcException rpcex)
                {
                    Console.WriteLine($"rpc error: {rpcex.Message} will restart queue");
                    queue = creatreQueue();
                }
                catch (Exception ex)
                {
                    Console.WriteLine($"Exception has accrued: {ex.Message} will restart queue");
                }
            }
        }