in python/rocketmq/v5/producer/producer.py [0:0]
def __send_req(self, message: Message):
try:
req = SendMessageRequest()
msg = req.messages.add()
msg.topic.name = message.topic
msg.topic.resource_namespace = self.client_configuration.namespace
if message.body is None or len(message.body) == 0:
raise IllegalArgumentException("message body is none.")
max_body_size = 4 * 1024 * 1024 # max body size is 4m
if len(message.body) > max_body_size:
raise IllegalArgumentException(
f"Message body size exceeds the threshold, max size={max_body_size} bytes"
)
msg.body = message.body
if message.tag is not None:
msg.system_properties.tag = message.tag
if message.keys is not None:
msg.system_properties.keys.extend(message.keys)
if message.properties is not None:
msg.user_properties.update(message.properties)
msg.system_properties.message_id = message.message_id
msg.system_properties.message_type = message.message_type
msg.system_properties.born_timestamp.seconds = int(time.time())
msg.system_properties.born_host = Misc.get_local_ip()
msg.system_properties.body_encoding = Encoding.IDENTITY
if message.message_group is not None:
msg.system_properties.message_group = message.message_group
if message.delivery_timestamp is not None:
msg.system_properties.delivery_timestamp.seconds = (
message.delivery_timestamp
)
return req
except Exception as e:
raise e