chore(producer) hide transaction message internal state
diff --git a/rocketmq/client.py b/rocketmq/client.py index a8f7f6c..1a58aa1 100644 --- a/rocketmq/client.py +++ b/rocketmq/client.py
@@ -16,7 +16,8 @@ ) from .consts import MessageProperty -__all__ = ['SendStatus', 'Message', 'RecvMessage', 'Producer', 'PushConsumer', 'PullConsumer', 'TransactionMQProducer'] +__all__ = ['SendStatus', 'Message', 'RecvMessage', 'Producer', 'PushConsumer', 'PullConsumer', 'TransactionMQProducer', + 'TransactionStatus'] PY2 = sys.version_info[0] == 2 if PY2: @@ -36,6 +37,12 @@ SLAVE_NOT_AVAILABLE = 3 +class TransactionStatus(IntEnum): + COMMIT = 0 + ROLLBACK = 1 + UNKNOWN = 2 + + def _to_bytes(s): if isinstance(s, text_type): return s.encode('utf-8') @@ -112,7 +119,7 @@ @property def reconsume_times(self): - return dll.GetMessageReconsumeTimes(self._hanle) + return dll.GetMessageReconsumeTimes(self._handle) @property def store_size(self): @@ -346,7 +353,8 @@ class TransactionMQProducer(Producer): def __init__(self, group_id, checker_callback, user_args=None, timeout=None, compress_level=None, max_message_size=None): - self._callback_refs = [] + self._callback_refs = [] + def _on_check(producer, cmsg, user_args): py_message = RecvMessage(cmsg) return checker_callback(py_message) @@ -363,7 +371,6 @@ self.set_compress_level(compress_level) if max_message_size is not None: self.set_max_message_size(max_message_size) - def __del__(self): if self._handle is not None: @@ -386,7 +393,7 @@ local_execute_callback = LOCAL_TRANSACTION_EXECUTE_CALLBACK(_on_local_execute) self._callback_refs.append(local_execute_callback) - + result = _CSendResult() try: ffi_check(
diff --git a/rocketmq/ffi.py b/rocketmq/ffi.py index b55fc8e..0c87c43 100644 --- a/rocketmq/ffi.py +++ b/rocketmq/ffi.py
@@ -117,7 +117,7 @@ RECONSUME_LATER = 1 -class TransactionStatus(CtypesEnum): +class _CTransactionStatus(CtypesEnum): E_COMMIT_TRANSACTION = 0 E_ROLLBACK_TRANSACTION = 1 E_UNKNOWN_TRANSACTION = 2
diff --git a/samples/producer.py b/samples/producer.py index 2dcf476..e45ece1 100644 --- a/samples/producer.py +++ b/samples/producer.py
@@ -14,8 +14,7 @@ # * See the License for the specific language governing permissions and # * limitations under the License. # */ -from rocketmq.client import Producer, Message, TransactionMQProducer -from rocketmq.ffi import TransactionStatus +from rocketmq.client import Producer, Message, TransactionMQProducer, TransactionStatus import time @@ -58,12 +57,12 @@ def check_callback(msg): print 'check: ' + msg.id.decode('utf-8') - return TransactionStatus.E_COMMIT_TRANSACTION + return TransactionStatus.COMMIT def local_execute(msg, user_args): print 'local ' + msg.id.decode('utf-8') - return TransactionStatus.E_UNKNOWN_TRANSACTION + return TransactionStatus.UNKNOWN def send_transaction_message(count):