diff --git a/queue_job/controllers/main.py b/queue_job/controllers/main.py index bfaf3314eb..312b36148a 100644 --- a/queue_job/controllers/main.py +++ b/queue_job/controllers/main.py @@ -71,10 +71,16 @@ def runjob(self, db, job_uuid, **kw): env = http.request.env(user=odoo.SUPERUSER_ID) def retry_postpone(job, message, seconds=None): - job.postpone(result=message, seconds=seconds) - job.set_pending(reset_retry=False) - job.store() - env.cr.commit() + + job.env.cr.rollback() + job.env.clear() + with odoo.api.Environment.manage(): + with odoo.registry(job.env.cr.dbname).cursor() as new_cr: + job.env = job.env(cr=new_cr) + job.postpone(result=message, seconds=seconds) + job.set_pending(reset_retry=False) + job.store() + new_cr.commit() job = self._load_job(env, job_uuid) if job is None: