[Erp5-report] r13757 - in /erp5/trunk/products/CMFActivity: Activity/ skins/activity/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 28 15:57:57 CEST 2007
Author: vincent
Date: Wed Mar 28 15:57:56 2007
New Revision: 13757
URL: http://svn.erp5.org?rev=13757&view=rev
Log:
Use portal_ids to generate message uids instead of using MySQL AUTO_INCREMENT. This will lower deadlock probability by removing the one caused by AUTO_INCREMENT table-level lock.
Modified:
erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql
Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=13757&r1=13756&r2=13757&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Wed Mar 28 15:57:56 2007
@@ -61,7 +61,9 @@
"""
def prepareQueueMessage(self, activity_tool, m):
if m.is_registered:
- activity_tool.SQLQueue_writeMessage(path = '/'.join(m.object_path) ,
+ #import pdb; pdb.set_trace()
+ activity_tool.SQLQueue_writeMessage(uid = activity_tool.getPortalObject().portal_ids.generateNewLengthId(id_group='portal_activity_queue'),
+ path = '/'.join(m.object_path) ,
method_id = m.method_id,
priority = m.activity_kw.get('priority', 1),
broadcast = m.activity_kw.get('broadcast', 0),
@@ -316,8 +318,10 @@
# Broadcast messages must be distributed into all nodes.
activity_tool.SQLQueue_assignMessage(processing_node=1, uid=uid)
if node_count > 1:
+ uid_list = activity_tool.getPortalObject().portal_ids.generateNewLengthIdList(id_group='portal_activity_queue', id_count=node_count - 1)
for node in range(2, node_count+1):
- activity_tool.SQLQueue_writeMessage( path = line.path,
+ activity_tool.SQLQueue_writeMessage(uid = uid_list.pop(),
+ path = line.path,
method_id = line.method_id,
priority = line.priority,
broadcast = 1,
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql?rev=13757&r1=13756&r2=13757&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_createMessageTable.zsql Wed Mar 28 15:57:56 2007
@@ -9,7 +9,7 @@
</dtml-comment>
<params></params>
CREATE TABLE `message_queue` (
- `uid` int(11) NOT NULL auto_increment,
+ `uid` int(11) NOT NULL,
`date` datetime,
`path` VARCHAR(255),
`method_id` VARCHAR(40),
Modified: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql?rev=13757&r1=13756&r2=13757&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql Wed Mar 28 15:57:56 2007
@@ -7,7 +7,8 @@
class_name:
class_file:
</dtml-comment>
-<params>path
+<params>uid
+path
method_id
message
priority
@@ -17,6 +18,7 @@
tag</params>
INSERT INTO message_queue
SET
+ uid = <dtml-sqlvar uid type="int">,
path = <dtml-sqlvar path type="string">,
<dtml-if date>date = <dtml-sqlvar date type="string">, <dtml-else>date = <dtml-sqlvar "_.DateTime()" type="datetime">, </dtml-if>
method_id = <dtml-sqlvar method_id type="string">,
More information about the Erp5-report
mailing list