/// <summary> /// 同步发送消息 /// </summary> /// <param name="builder"></param> /// <returns></returns> public SendResult SendMessageSync(HandleRef message) { if (message.Handle == IntPtr.Zero) { throw new ArgumentException(nameof(message)); } try { CSendResult sendResultStruct = new CSendResult(); var result = ProducerWrap.SendMessageSync(this._handleRef, message, ref sendResultStruct); if (result != 0) { throw new RocketMQProducerException($"set producer sendMessageTimeout error. cpp sdk return code: {result}"); } return(result == 0 ? new SendResult { SendStatus = sendResultStruct.sendStatus, Offset = sendResultStruct.offset, MessageId = sendResultStruct.msgId } : null); } catch (Exception e) { throw new Exception(e.Message); } }
public static extern int SendMessageOrderly( HandleRef producer, HandleRef message, [MarshalAs(UnmanagedType.FunctionPtr)] QueueSelectorCallback callback, IntPtr arg, int autoRetryTimes, [Out] out CSendResult result );
public static extern int SendMessageSync(HandleRef producer, HandleRef message, ref CSendResult result);