Ejemplo n.º 1
0
 public void Dispose()
 {
     if (this.Handle.Handle != IntPtr.Zero)
     {
         ProducerWrap.DestroyProducer(this.Handle);
         this.Handle = new HandleRef(null, IntPtr.Zero);
         GC.SuppressFinalize(this);
     }
 }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            Console.WriteLine("Start create producer.");
            var producer = ProducerWrap.CreateProducer("xxx");

            if (producer == IntPtr.Zero)
            {
                Console.WriteLine("zero. Oops.");
            }
            Console.WriteLine(producer.ToString());
            Console.WriteLine("end create producer.");
            try
            {
                var setNameServerAddressResult = ProducerWrap.SetProducerNameServerAddress(producer, "47.101.55.250:9876");
                Console.WriteLine("set name server address result:" + setNameServerAddressResult);

                var setProducerLogPathResult = ProducerWrap.SetProducerLogPath(producer, "C:/rocketmq_log.txt");
                Console.WriteLine("set producer log path result:" + setProducerLogPathResult);

                var setLogLevelResult = ProducerWrap.SetProducerLogLevel(producer, CLogLevel.E_LOG_LEVEL_TRACE);
                Console.WriteLine("set producer log level result:" + setLogLevelResult);

                var startResult = ProducerWrap.StartProducer(producer);
                Console.WriteLine("start result:" + startResult);

                while (true)
                {
                    // message
                    var messageIntPtr = MessageWrap.CreateMessage("test");
                    Console.WriteLine("message intptr:" + messageIntPtr.ToString());

                    var setMessageBodyResult = MessageWrap.SetMessageBody(messageIntPtr, "hello" + Guid.NewGuid());
                    Console.WriteLine("set message body result:" + setMessageBodyResult);

                    var setTagResult = MessageWrap.SetMessageTags(messageIntPtr, "tag_test");
                    Console.WriteLine("set message tag result:" + setTagResult.ToString());

                    var sendResult = ProducerWrap.SendMessageSync(producer, messageIntPtr, out CSendResult sendResultStruct);
                    Console.WriteLine("send result:" + sendResult + ", msgId: " + sendResultStruct.msgId.ToString());

                    Thread.Sleep(500);
                }

                var shutdownResult = ProducerWrap.ShutdownProducer(producer);
                Console.WriteLine("shutdown result:" + shutdownResult);

                var destoryResult = ProducerWrap.DestroyProducer(producer);
                Console.WriteLine("destory result:" + destoryResult);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            Console.ReadKey(true);
        }
Ejemplo n.º 3
0
        public bool ShutdownProducer()
        {
            var shutdownResult = ProducerWrap.ShutdownProducer(this.Handle);

            if (this._diagnosticListener?.IsEnabled(ConstValues.RocketMQProducerStop) ?? false)
            {
                this._diagnosticListener.Write(ConstValues.RocketMQProducerStop, new {
                    shutdownResult
                });
            }

            return(shutdownResult == 0);
        }
Ejemplo n.º 4
0
        public SendResult SendMessageOneway(IMessageBuilder builder)
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var result = ProducerWrap.SendMessageOneway(this.Handle, message);

            return(result == 0
                ? new SendResult {
                SendStatus = result,
                Offset = 0,
                MessageId = string.Empty
            }
                : null);
        }
Ejemplo n.º 5
0
        public SendResult SendMessageSync(IMessageBuilder builder)
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var result = ProducerWrap.SendMessageSync(this.Handle, message, out var sendResult);

            return(result == 0
                ? new SendResult {
                SendStatus = sendResult.sendStatus,
                Offset = sendResult.offset,
                MessageId = sendResult.msgId
            }
                : null);
        }
Ejemplo n.º 6
0
        public SendResult SendMessageOrderly(IMessageBuilder builder, QueueSelectorCallback callback, int autoRetryTimes = 0, string args = "")
        {
            var message = builder.Build();

            if (message.Handle == IntPtr.Zero)
            {
                throw new ArgumentException(nameof(builder));
            }

            var argsPtr = Marshal.StringToBSTR(args);
            var result  = ProducerWrap.SendMessageOrderly(this.Handle, message, callback, argsPtr, autoRetryTimes, out var sendResult);

            return(result == 0
                ? new SendResult {
                SendStatus = sendResult.sendStatus,
                Offset = sendResult.offset,
                MessageId = sendResult.msgId
            }
                : null);
        }
 public int SetProducerMaxMessageSize(HandleRef producer, int size)
 {
     return(ProducerWrap.SetProducerMaxMessageSize(producer, size));
 }
 public int SetProducerCompressLevel(HandleRef producer, int level)
 {
     return(ProducerWrap.SetProducerCompressLevel(producer, level));
 }
 public int StartProducer(HandleRef producer)
 {
     return(ProducerWrap.StartProducer(producer));
 }
 public int SetProducerLogFileNumAndSize(HandleRef producer, int fileNum, long fileSize)
 {
     return(ProducerWrap.SetProducerLogFileNumAndSize(producer, fileNum, fileSize));
 }
 public int SetProducerLogPath(HandleRef producer, string logPath)
 {
     return(ProducerWrap.SetProducerLogPath(producer, logPath));
 }
 public int SetProducerSessionCredentials(HandleRef producer, string accessKey, string secretKey, string onsChannel)
 {
     return(ProducerWrap.SetProducerSessionCredentials(producer, accessKey, secretKey, onsChannel));
 }
 public int SetProducerInstanceName(HandleRef producer, string instanceName)
 {
     return(ProducerWrap.SetProducerInstanceName(producer, instanceName));
 }
 public int SetProducerGroupName(HandleRef producer, string groupName)
 {
     return(ProducerWrap.SetProducerGroupName(producer, groupName));
 }
 public int SetProducerNameServerDomain(HandleRef producer, string domain)
 {
     return(ProducerWrap.SetProducerNameServerDomain(producer, domain));
 }
 public int SetProducerNameServerAddress(HandleRef producer, string nameServer)
 {
     return(ProducerWrap.SetProducerNameServerAddress(producer, nameServer));
 }
 public int SetProducerLogLevel(HandleRef producer, LogLevel level)
 {
     return(ProducerWrap.SetProducerLogLevel(producer, (CLogLevel)level));
 }
 public int SetProducerSendMsgTimeout(HandleRef producer, int timeout)
 {
     return(ProducerWrap.SetProducerSendMsgTimeout(producer, timeout));
 }
Ejemplo n.º 19
0
        public static void Main(string[] args)
        {
            Console.Title = "Producer";

            Console.WriteLine("Start create producer.");
            var producerPtr = ProducerWrap.CreateProducer("xxx");

            if (producerPtr == IntPtr.Zero)
            {
                Console.WriteLine("zero. Oops.");
            }

            Console.WriteLine(producerPtr.ToString());
            Console.WriteLine("end create producer.");

            var p        = new MainClass();
            var producer = new HandleRef(p, producerPtr);

            try
            {
                var setNameServerAddressResult = ProducerWrap.SetProducerNameServerAddress(producer, "47.101.55.250:9876");
                Console.WriteLine("set name server address result:" + setNameServerAddressResult);

                var setProducerLogPathResult = ProducerWrap.SetProducerLogPath(producer, "C:/rocketmq_log.txt");
                Console.WriteLine("set producer log path result:" + setProducerLogPathResult);

                var setLogLevelResult = ProducerWrap.SetProducerLogLevel(producer, CLogLevel.E_LOG_LEVEL_TRACE);
                Console.WriteLine("set producer log level result:" + setLogLevelResult);

                var startResult = ProducerWrap.StartProducer(producer);
                Console.WriteLine("start result:" + startResult);

                while (true)
                {
                    // message
                    var message = MessageWrap.CreateMessage("test");
                    Console.WriteLine("message intPtr:" + message);

                    var p1            = new MainClass();
                    var messageIntPtr = new HandleRef(p1, message);

                    var setMessageBodyResult = MessageWrap.SetMessageBody(messageIntPtr, "hello" + Guid.NewGuid());
                    Console.WriteLine("set message body result:" + setMessageBodyResult);

                    var setTagResult = MessageWrap.SetMessageTags(messageIntPtr, "tag_test");
                    Console.WriteLine("set message tag result:" + setTagResult);

                    var setPropertyResult = MessageWrap.SetMessageProperty(messageIntPtr, "key1", "value1");
                    Console.WriteLine("set message property result:" + setPropertyResult);

                    // var setByteMessageBodyResult = MessageWrap.SetByteMessageBody(messageIntPtr, "byte_body", 9);
                    // Console.WriteLine("set byte message body result:" + setByteMessageBodyResult);


                    // SendMessageSync
                    var sendResult = ProducerWrap.SendMessageSync(producer, messageIntPtr, out CSendResult sendResultStruct);
                    Console.WriteLine("send result:" + sendResult + ", msgId: " + sendResultStruct.msgId.ToString());

                    // SendMessageOneway
                    // var sendResult = ProducerWrap.SendMessageOneway(producer, messageIntPtr);
                    // Console.WriteLine("send result:" + sendResult);

                    // SendMessageAsync
                    // var sendResult = ProducerWrap.SendMessageAsync(
                    //     producer,
                    //     messageIntPtr,
                    //     result =>
                    //     {
                    //         Console.WriteLine($"success_callback_msgId: {result.msgId}");
                    //     },
                    //     ex =>
                    //     {
                    //         Console.WriteLine($"error_callback_msgId: {ex.msg}");
                    //     }
                    // );
                    // Console.WriteLine("send result:" + sendResult);

                    // var pArgs = "args_parameters";
                    // var ptrArgs = Marshal.StringToBSTR(pArgs);
                    // var sendResult = ProducerWrap.SendMessageOrderly(producer, messageIntPtr, _queueSelectorCallback,
                    //     ptrArgs, 1, out var sendResultStruct);
                    // Console.WriteLine($"send result:{sendResult}, sendResultStruct -> msgId: {sendResultStruct.msgId}, status: {sendResultStruct.sendStatus}, offset: {sendResultStruct.offset}");

                    Thread.Sleep(500);
                }

                var shutdownResult = ProducerWrap.ShutdownProducer(producer);
                Console.WriteLine("shutdown result:" + shutdownResult);

                var destoryResult = ProducerWrap.DestroyProducer(producer);
                Console.WriteLine("destory result:" + destoryResult);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            Console.ReadKey(true);
        }
 public IntPtr CreateProducer(string groupId)
 {
     return(ProducerWrap.CreateProducer(groupId));
 }