public void Dispose() { if (this.Handle.Handle != IntPtr.Zero) { ProducerWrap.DestroyProducer(this.Handle); this.Handle = new HandleRef(null, IntPtr.Zero); GC.SuppressFinalize(this); } }
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); }
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); }
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); }
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); }
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)); }
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)); }