[Erp5-report] r20047 - in /erp5/trunk/products/CMFActivity: Activity/ skins/activity/
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Mar 19 16:27:45 CET 2008
Author: vincent
Date: Wed Mar 19 16:27:44 2008
New Revision: 20047
URL: http://svn.erp5.org?rev=20047&view=rev
Log:
Implement prepareQueueMessageList and SQLQueue_writeMessageList for SQLQueue.
Added:
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql
Removed:
erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql
Modified:
erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
Modified: erp5/trunk/products/CMFActivity/Activity/SQLQueue.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/Activity/SQLQueue.py?rev=20047&r1=20046&r2=20047&view=diff
==============================================================================
--- erp5/trunk/products/CMFActivity/Activity/SQLQueue.py (original)
+++ erp5/trunk/products/CMFActivity/Activity/SQLQueue.py Wed Mar 19 16:27:44 2008
@@ -61,26 +61,28 @@
and provide sequentiality. Should not create conflict
because use of OOBTree.
"""
- def prepareQueueMessage(self, activity_tool, m):
- if m.is_registered:
- id_tool = activity_tool.getPortalObject().portal_ids
- uid = id_tool.generateNewLengthId(id_group='portal_activity_queue', store=0)
- path = '/'.join(m.object_path)
- method_id = m.method_id
- priority = m.activity_kw.get('priority', 1)
- date = m.activity_kw.get('at_date', None)
- if date is None:
- date = self.getNow(activity_tool)
- tag = m.activity_kw.get('tag', '')
- serialization_tag = m.activity_kw.get('serialization_tag', '')
- activity_tool.SQLQueue_writeMessage(uid=uid,
- path=path,
- method_id=method_id,
- priority=priority,
- message=self.dumpMessage(m),
- date=date,
- tag=tag,
- serialization_tag=serialization_tag)
+
+ def prepareQueueMessageList(self, activity_tool, message_list):
+ registered_message_list = [m for m in message_list if m.is_registered]
+ if len(registered_message_list):
+ uid_list = activity_tool.getPortalObject().portal_ids.generateNewLengthIdList(
+ id_group='portal_activity_queue', id_count=len(registered_message_list),
+ store=0)
+ path_list = ['/'.join(m.object_path) for m in registered_message_list]
+ method_id_list = [m.method_id for m in registered_message_list]
+ priority_list = [m.activity_kw.get('priority', 1) for m in registered_message_list]
+ date_list = [m.activity_kw.get('at_date', None) for m in registered_message_list]
+ tag_list = [m.activity_kw.get('tag', '') for m in registered_message_list]
+ serialization_tag_list = [m.activity_kw.get('serialization_tag', '') for m in registered_message_list]
+ message_list = [self.dumpMessage(m) for m in registered_message_list]
+ activity_tool.SQLQueue_writeMessageList(uid_list=uid_list,
+ path_list=path_list,
+ method_id_list=method_id_list,
+ priority_list=priority_list,
+ message_list=message_list,
+ date_list=date_list,
+ tag_list=tag_list,
+ serialization_tag_list=serialization_tag_list)
def prepareDeleteMessage(self, activity_tool, m):
# Erase all messages in a single transaction
Removed: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql?rev=20046&view=auto
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql (original)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessage.zsql (removed)
@@ -1,33 +1,0 @@
-<dtml-comment>
-title:
-connection_id:cmf_activity_sql_connection
-max_rows:1000
-max_cache:100
-cache_time:0
-class_name:
-class_file:
-</dtml-comment>
-<params>uid
-path
-method_id
-message
-priority
-processing_node
-date
-tag
-serialization_tag
-</params>
-INSERT INTO message_queue
-SET
- uid = <dtml-sqlvar uid type="int">,
- path = <dtml-sqlvar path type="string">,
- date = <dtml-if date><dtml-sqlvar date type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if>,
- method_id = <dtml-sqlvar method_id type="string">,
-<dtml-if processing_node>
- processing_node = <dtml-sqlvar processing_node type="int">,
-</dtml-if>
- processing = 0,
- priority = <dtml-sqlvar priority type="int">,
- tag = <dtml-sqlvar tag type="string">,
- serialization_tag = <dtml-sqlvar serialization_tag type="string">,
- message = <dtml-sqlvar message type="string">
Added: erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql
URL: http://svn.erp5.org/erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql?rev=20047&view=auto
==============================================================================
--- erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql (added)
+++ erp5/trunk/products/CMFActivity/skins/activity/SQLQueue_writeMessageList.zsql Wed Mar 19 16:27:44 2008
@@ -1,0 +1,37 @@
+<dtml-comment>
+title:
+connection_id:cmf_activity_sql_connection
+max_rows:1000
+max_cache:100
+cache_time:0
+class_name:
+class_file:
+</dtml-comment>
+<params>uid_list
+path_list
+method_id_list
+message_list
+priority_list
+processing_node_list
+date_list
+tag_list
+serialization_tag_list
+</params>
+INSERT INTO message_queue
+(uid, path, date, method_id, processing_node, processing, priority, tag, serialization_tag, message)
+VALUES
+<dtml-in prefix="loop" expr="_.range(_.len(path_list))">
+<dtml-if sequence-start><dtml-else>,</dtml-if>
+(
+ <dtml-sqlvar expr="uid_list[loop_item]" type="int">,
+ <dtml-sqlvar expr="path_list[loop_item]" type="string">,
+ <dtml-if date><dtml-sqlvar expr="date_list[loop_item]" type="datetime"><dtml-else>UTC_TIMESTAMP()</dtml-if>,
+ <dtml-sqlvar expr="method_id_list[loop_item]" type="string">,
+ <dtml-if processing_node_list><dtml-sqlvar expr="processing_node_list[loop_item]" type="int"><dtml-else>-1</dtml-if>,
+ 0,
+ <dtml-sqlvar expr="priority_list[loop_item]" type="int">,
+ <dtml-sqlvar expr="tag_list[loop_item]" type="string">,
+ <dtml-sqlvar expr="serialization_tag_list[loop_item]" type="string">,
+ <dtml-sqlvar expr="message_list[loop_item]" type="string">
+)
+</dtml-in>
More information about the Erp5-report
mailing list