diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py index 335c07aa09f53e0a1c5719957642faca3a004f16..cc3581a8ee18b08d49bcee84c761d23757adf13d 100755 --- a/product/CMFActivity/ActivityTool.py +++ b/product/CMFActivity/ActivityTool.py @@ -123,8 +123,18 @@ class ActiveWrapper: class ActivityTool (Folder, UniqueObject): """ - This is a ZSQLCatalog that filters catalog queries. - It is based on ZSQLCatalog + ActivityTool is the central point for activity management. + + Improvement to consider to reduce locks: + + Idea 1: create an SQL tool which accumulate queries and executes them at the end of a transaction, + thus allowing all SQL transaction to happen in a very short time + (this would also be a great way of using MyISAM tables) + + Idea 2: do the same at the level of ActivityTool + + Idea 3: do the same at the level of each activity (ie. queueMessage + accumulates and fires messages at the end of the transactino) """ id = 'portal_activities' meta_type = 'CMF Activity Tool' diff --git a/product/CMFActivity/skins/activity/SQLDict_assignMessage.zsql b/product/CMFActivity/skins/activity/SQLDict_assignMessage.zsql index 4e2424530d65c30a1b6802833f32e81612980ada..a6df67a3271954b32b7c1e1105c26e7dbfba76e8 100755 --- a/product/CMFActivity/skins/activity/SQLDict_assignMessage.zsql +++ b/product/CMFActivity/skins/activity/SQLDict_assignMessage.zsql @@ -8,8 +8,12 @@ class_name: class_file: </dtml-comment> <params>path -processing_node</params> +processing_node +method_id</params> UPDATE message -SET processing_node=<dtml-sqlvar processing_node type="int"> +SET + processing_node=<dtml-sqlvar processing_node type="int">, + processing=0 WHERE - path = <dtml-sqlvar path type="string"> \ No newline at end of file + path = <dtml-sqlvar path type="string"> +<dtml-if method_id>AND method_id = <dtml-sqlvar method_id type="string"></dtml-if> \ No newline at end of file diff --git a/product/CMFActivity/skins/activity/SQLDict_readMessage.zsql b/product/CMFActivity/skins/activity/SQLDict_readMessage.zsql index 9a6a7b46be393c421290cf35af36030ddb71b0d8..558017fd2763a8cbee729f01960abd11985667c9 100755 --- a/product/CMFActivity/skins/activity/SQLDict_readMessage.zsql +++ b/product/CMFActivity/skins/activity/SQLDict_readMessage.zsql @@ -11,7 +11,7 @@ class_file: SELECT * FROM message WHERE - processing = 1 + processing = 0 <dtml-if processing_node> AND processing_node = <dtml-sqlvar processing_node type="int"> </dtml-if> \ No newline at end of file diff --git a/product/CMFActivity/skins/activity/SQLDict_readMessageList.zsql b/product/CMFActivity/skins/activity/SQLDict_readMessageList.zsql index 8a5211e2fab4716af39963e9257eeb5df4409ed5..f39ac54dbfea1c503cf0f989fb062203a5f3b99e 100755 --- a/product/CMFActivity/skins/activity/SQLDict_readMessageList.zsql +++ b/product/CMFActivity/skins/activity/SQLDict_readMessageList.zsql @@ -13,7 +13,7 @@ processing_node</params> SELECT * FROM message WHERE - processing = 1 + processing = 0 <dtml-if processing_node>AND processing_node = <dtml-sqlvar processing_node type="int"> </dtml-if> <dtml-if path>AND path = <dtml-sqlvar path type="string"></dtml-if> <dtml-if method_id>AND method_id = <dtml-sqlvar method_id type="string"></dtml-if>