[IMP] runbot: keep cron on transaction rollback

This commit is contained in:
Xavier-Do 2019-06-25 18:00:22 +02:00
parent c5e0da174a
commit 1ffa0468c1

View File

@ -16,7 +16,7 @@ from odoo import models, fields, api
from odoo.modules.module import get_module_resource from odoo.modules.module import get_module_resource
from odoo.tools import config from odoo.tools import config
from ..common import fqdn, dt2time from ..common import fqdn, dt2time
from psycopg2.extensions import TransactionRollbackError
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -512,10 +512,16 @@ class runbot_repo(models.Model):
update_frequency = int(icp.get_param('runbot.runbot_update_frequency', default=10)) update_frequency = int(icp.get_param('runbot.runbot_update_frequency', default=10))
while time.time() - start_time < timeout: while time.time() - start_time < timeout:
repos = self.search([('mode', '!=', 'disabled')]) repos = self.search([('mode', '!=', 'disabled')])
repos._scheduler() try:
self.env.cr.commit() repos._scheduler()
self.env.reset() self.env.cr.commit()
self = self.env()[self._name] self.env.reset()
self._reload_nginx() self = self.env()[self._name]
time.sleep(update_frequency) self._reload_nginx()
time.sleep(update_frequency)
except TransactionRollbackError:
_logger.exception('Trying to rollback')
self.env.cr.rollback()
self.env.reset()
time.sleep(random.uniform(0, 1))
self.env['runbot.build']._local_cleanup() self.env['runbot.build']._local_cleanup()