Commit 4e0c0864 authored by Boxiang Sun's avatar Boxiang Sun

Using random int as the uid of Activity

parent 1ee36c3b
......@@ -28,6 +28,8 @@
import sys
import transaction
import random
from MySQLdb.constants.ER import DUP_ENTRY
from DateTime import DateTime
from Shared.DC.ZRDB.Results import Results
from Shared.DC.ZRDB.DA import DatabaseError
......@@ -122,8 +124,6 @@ class SQLBase(Queue):
portal = activity_tool.getPortalObject()
for i in xrange(0, len(registered_message_list), MAX_MESSAGE_LIST_SIZE):
message_list = registered_message_list[i:i+MAX_MESSAGE_LIST_SIZE]
uid_list = portal.portal_ids.generateNewIdList(self.uid_group,
id_count=len(message_list), id_generator='uid')
path_list = ['/'.join(m.object_path) for m in message_list]
active_process_uid_list = [m.active_process_uid for m in message_list]
method_id_list = [m.method_id for m in message_list]
......@@ -137,6 +137,9 @@ class SQLBase(Queue):
for m in message_list:
m.order_validation_text = x = self.getOrderValidationText(m)
processing_node_list.append(0 if x == 'none' else -1)
for i in range(10):
try:
uid_list = [random.randrange(0, 0x7fffffff) for _ in range(len(message_list))]
portal.SQLBase_writeMessageList(
table=self.sql_table,
uid_list=uid_list,
......@@ -150,6 +153,13 @@ class SQLBase(Queue):
tag_list=tag_list,
processing_node_list=processing_node_list,
serialization_tag_list=serialization_tag_list)
except MySQLdb.IntegrityError, (code, _):
if code != DUP_ENTRY:
raise
else:
break
else:
raise ValueError("Maximum retry for SQLBase_writeMessageList reached")
def getNow(self, context):
"""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment