from rocketmq import (ClientConfiguration, Credentials, Message, Producer,
TransactionChecker, TransactionResolution)
class TestChecker(TransactionChecker):
def check(self, message: Message) -> TransactionResolution:
print(f"do TestChecker check. message_id: {message.message_id}, commit message.")
return TransactionResolution.COMMIT
if __name__ == '__main__':
endpoints = "rocketmq-xxxxx:8080"
credentials = Credentials("xxxx", "xxxx")
config = ClientConfiguration(endpoints, credentials)
producer = Producer(config, (topic,), TestChecker)
print(f"{producer.__str__()} startup raise exception: {e}")
transaction = producer.begin_transaction()
msg.body = "hello, rocketmq.".encode('utf-8')
msg.tag = "rocketmq-send-transaction-message"
msg.keys = "send_transaction"
msg.add_property("send", "transaction")
res = producer.send(msg, transaction)
print(f"transaction producer{producer.__str__()} send half message success. {res}")
print(f"transaction producer{producer.__str__()} example raise exception: {e}")