[MERGE] forward port of branch 7.0 up to revid 4067 chs@openerp.com-20131114142639...
[odoo/odoo.git] / openerpcommand / cron.py
1 """
2 Run an OpenERP cron process.
3 """
4
5 import os
6
7 import common
8
9 def run(args):
10     import openerp
11     import openerp.cli.server
12     import openerp.tools.config
13     import openerp.service.cron
14     config = openerp.tools.config
15
16     os.environ["TZ"] = "UTC"
17     common.set_addons(args)
18     args.database = args.database or []
19
20     config['log_handler'] = [':WARNING', 'openerp.addons.base.ir.ir_cron:DEBUG']
21
22     openerp.multi_process = True
23     common.setproctitle('openerp-cron [%s]' % ', '.join(args.database))
24
25     openerp.cli.server.check_root_user()
26     openerp.netsvc.init_logger()
27     #openerp.cli.server.report_configuration()
28     openerp.cli.server.setup_signal_handlers(openerp.cli.server.signal_handler)
29     import openerp.addons.base
30     if args.database:
31         for db in args.database:
32             openerp.cli.server.preload_registry(db)
33         openerp.service.cron.start_service()
34         openerp.cli.server.quit_on_signals()
35     else:
36         print "No database given."
37
38
39 def add_parser(subparsers):
40     parser = subparsers.add_parser('cron',
41         description='Run an OpenERP cron process.')
42     common.add_addons_argument(parser)
43     parser.add_argument('--database', action='append',
44         help='Database for which cron jobs are processed (can be repeated)')
45
46     parser.set_defaults(run=run)