diff --git a/openerp/cli/server.py b/openerp/cli/server.py index bc83b735624..7c768206354 100644 --- a/openerp/cli/server.py +++ b/openerp/cli/server.py @@ -96,6 +96,9 @@ def preload_registry(dbname): try: update_module = True if openerp.tools.config['init'] or openerp.tools.config['update'] else False db, registry = openerp.pooler.get_db_and_pool(dbname, update_module=update_module, pooljobs=False) + + # jobs will start to be processed later, when openerp.cron.start_master_thread() is called by openerp.service.start_services() + registry.schedule_cron_jobs() except Exception: _logger.exception('Failed to initialize database `%s`.', dbname) diff --git a/openerp/pooler.py b/openerp/pooler.py index 88b60864b90..d5588acf6ff 100644 --- a/openerp/pooler.py +++ b/openerp/pooler.py @@ -36,7 +36,11 @@ def get_db_and_pool(db_name, force_demo=False, status=None, update_module=False, def restart_pool(db_name, force_demo=False, status=None, update_module=False): """Delete an existing registry and return a database connection and a newly initialized registry.""" - registry = RegistryManager.new(db_name, force_demo, status, update_module, True) + # preserve previous `cron-active` status of registry if it existed already + previous_registry = RegistryManager.registries.get(db_name) + cron_active = previous_registry and previous_registry.cron or False + + registry = RegistryManager.new(db_name, force_demo, status, update_module, pooljobs=cron_active) return registry.db, registry