def preload_registry(dbname):
""" Preload a registry, and start the cron."""
try:
- db, pool = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
- pool.get('ir.cron').restart(db.dbname)
+ db, registry = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], 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:
logging.exception('Failed to initialize database `%s`.', dbname)
def run_test_file(dbname, test_file):
""" Preload a registry, possibly run a test file, and start the cron."""
try:
- db, pool = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
+ db, registry = openerp.pooler.get_db_and_pool(dbname, update_module=config['init'] or config['update'], pooljobs=False)
cr = db.cursor()
logger = logging.getLogger('server')
logger.info('loading test file %s', test_file)
# services to be running before loading any registry.
openerp.service.start_services()
- if config['db_name']:
- for dbname in config['db_name'].split(','):
- preload_registry(dbname)
-
- if config["stop_after_init"]:
- sys.exit(0)
-
for m in openerp.conf.server_wide_modules:
try:
__import__(m)
if info['post_load']:
getattr(sys.modules[m], info['post_load'])()
except Exception:
- logging.exception('Failed to load server-wide module `%s`', m)
+ msg = ''
+ if m == 'web':
+ msg = """
+The `web` module is provided by the addons found in the `openerp-web` project.
+Maybe you forgot to add those addons in your addons_path configuration."""
+ logging.exception('Failed to load server-wide module `%s`.%s', m, msg)
+
+ if config['db_name']:
+ for dbname in config['db_name'].split(','):
+ preload_registry(dbname)
+
+ if config["stop_after_init"]:
+ sys.exit(0)
setup_pid_file()
logger = logging.getLogger('server')