diff options
| author | Vo Minh Thu <vmt@openerp.com> | 2013-01-15 15:01:10 +0100 |
|---|---|---|
| committer | Vo Minh Thu <vmt@openerp.com> | 2013-01-15 15:01:10 +0100 |
| commit | b146cd6fec80185f157c32f5b5dd68629c1636bd (patch) | |
| tree | 01b8b8051450ebb0d8038bd6cfde7199a1398ac8 /openerpcommand | |
| parent | 40c02c12b663acf587dc75c2173d7f31a380794b (diff) | |
[ADD] oe: added cron sub-command to run a single process dedicated to cron jobs.
bzr revid: vmt@openerp.com-20130115140110-fwu7yb2v0sj3oqqv
Diffstat (limited to 'openerpcommand')
| -rw-r--r-- | openerpcommand/__init__.py | 3 | ||||
| -rw-r--r-- | openerpcommand/cron.py | 55 |
2 files changed, 57 insertions, 1 deletions
diff --git a/openerpcommand/__init__.py b/openerpcommand/__init__.py index 5a243ded229..6d41c2842dc 100644 --- a/openerpcommand/__init__.py +++ b/openerpcommand/__init__.py @@ -8,6 +8,7 @@ from .bench_sale_mrp import BenchSaleMrp from . import common from . import conf # Not really server-side (in the `for` below). +from . import cron from . import drop from . import initialize from . import model @@ -19,7 +20,7 @@ from . import uninstall from . import update from . import web -command_list_server = (conf, drop, initialize, model, module, read, run_tests, +command_list_server = (conf, cron, drop, initialize, model, module, read, run_tests, scaffold, uninstall, update, web, ) command_list_client = (Call, Open, Show, ConsumeNothing, ConsumeMemory, diff --git a/openerpcommand/cron.py b/openerpcommand/cron.py new file mode 100644 index 00000000000..dc74e92ff09 --- /dev/null +++ b/openerpcommand/cron.py @@ -0,0 +1,55 @@ +""" +Run an OpenERP cron process. +""" + +import os + +import common + +def set_addons(args): + import openerp.tools.config + config = openerp.tools.config + + assert hasattr(args, 'addons') + if args.addons: + args.addons = args.addons.split(':') + else: + args.addons = [] + + config['addons_path'] = ','.join(args.addons) + +def run(args): + import openerp.cli.server + import openerp.tools.config + import openerp.service.cron + config = openerp.tools.config + + os.environ["TZ"] = "UTC" + set_addons(args) + args.database = args.database or [] + + config['log_handler'] = [':WARNING', 'openerp.addons.base.ir.ir_cron:DEBUG'] + + openerp.cli.server.check_root_user() + openerp.netsvc.init_logger() + #openerp.cli.server.report_configuration() + openerp.cli.server.configure_babel_localedata_path() + openerp.cli.server.setup_signal_handlers() + import openerp.addons.base + if args.database: + for db in args.database: + openerp.cli.server.preload_registry(db) + openerp.service.cron.start_service() + openerp.cli.server.quit_on_signals() + else: + print "No database given." + + +def add_parser(subparsers): + parser = subparsers.add_parser('cron', + description='Run an OpenERP cron process.') + common.add_addons_argument(parser) + parser.add_argument('--database', action='append', + help='Database for which cron jobs are processed (can be given repeated)') + + parser.set_defaults(run=run) |
