From ea39eb0295f63f1864166cd4d71ba4ccc8e77d7b Mon Sep 17 00:00:00 2001 From: "Laurent Mignon (ACSONE)" Date: Wed, 27 May 2015 11:28:58 +0200 Subject: [PATCH 1/2] [IMP] Process jobs 'validate_one_move' in a dedicated job channel To avoid concurrent update when validating the account_move on ir_sequence, jobs must be processed one by one. Using a dedicated channel enable to isolate the processing of the 'validate_one_move' jobs from the root channel --- account_move_batch_validate/__openerp__.py | 1 + account_move_batch_validate/account.py | 4 ++++ account_move_batch_validate/account_data.xml | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+) create mode 100644 account_move_batch_validate/account_data.xml diff --git a/account_move_batch_validate/__openerp__.py b/account_move_batch_validate/__openerp__.py index d445da382..ceea08e57 100644 --- a/account_move_batch_validate/__openerp__.py +++ b/account_move_batch_validate/__openerp__.py @@ -32,6 +32,7 @@ 'website': 'http://www.camptocamp.com', 'data': [ 'account_view.xml', + 'account_data.xml', 'wizard/move_marker_view.xml', ], 'test': [ diff --git a/account_move_batch_validate/account.py b/account_move_batch_validate/account.py index e84c63ce4..aaf068299 100644 --- a/account_move_batch_validate/account.py +++ b/account_move_batch_validate/account.py @@ -28,6 +28,10 @@ from openerp.tools.translate import _ from openerp.addons.connector.queue.job import job from openerp.addons.connector.session import ConnectorSession from openerp.addons.connector.queue.job import OpenERPJobStorage +from openerp.addons.connector.connector import install_in_connector + +# install the module in connector to register the job function +install_in_connector() _logger = logging.getLogger(__name__) diff --git a/account_move_batch_validate/account_data.xml b/account_move_batch_validate/account_data.xml new file mode 100644 index 000000000..26557226b --- /dev/null +++ b/account_move_batch_validate/account_data.xml @@ -0,0 +1,19 @@ + + + + + + + account_move_batch_validate + + + + + openerp.addons.account_move_batch_validate.account.validate_one_move + + + + + \ No newline at end of file From a30a4433c4eebb863332bd5120bd60bdf669ee35 Mon Sep 17 00:00:00 2001 From: "Laurent Mignon (ACSONE)" Date: Thu, 28 May 2015 12:00:16 +0200 Subject: [PATCH 2/2] [IMP] assign default channel on @job function --- account_move_batch_validate/__openerp__.py | 1 - account_move_batch_validate/account.py | 2 +- account_move_batch_validate/account_data.xml | 19 ------------------- 3 files changed, 1 insertion(+), 21 deletions(-) delete mode 100644 account_move_batch_validate/account_data.xml diff --git a/account_move_batch_validate/__openerp__.py b/account_move_batch_validate/__openerp__.py index ceea08e57..d445da382 100644 --- a/account_move_batch_validate/__openerp__.py +++ b/account_move_batch_validate/__openerp__.py @@ -32,7 +32,6 @@ 'website': 'http://www.camptocamp.com', 'data': [ 'account_view.xml', - 'account_data.xml', 'wizard/move_marker_view.xml', ], 'test': [ diff --git a/account_move_batch_validate/account.py b/account_move_batch_validate/account.py index aaf068299..27c7de1eb 100644 --- a/account_move_batch_validate/account.py +++ b/account_move_batch_validate/account.py @@ -147,7 +147,7 @@ class account_move(orm.Model): self._cancel_jobs(cr, uid, context=context) -@job +@job(default_channel='root.account_move_batch_validate') def validate_one_move(session, model_name, move_id): """Validate a move, and leave the job reference in place.""" move_pool = session.pool['account.move'] diff --git a/account_move_batch_validate/account_data.xml b/account_move_batch_validate/account_data.xml deleted file mode 100644 index 26557226b..000000000 --- a/account_move_batch_validate/account_data.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - account_move_batch_validate - - - - - openerp.addons.account_move_batch_validate.account.validate_one_move - - - - - \ No newline at end of file