[ADD] oe: added cron sub-command to run a single process dedicated to cron jobs.
bzr revid: vmt@openerp.com-20130115140110-fwu7yb2v0sj3oqqv
This commit is contained in:
parent
40c02c12b6
commit
b146cd6fec
|
@ -135,6 +135,10 @@ class ir_cron(osv.osv):
|
|||
_logger.debug('%.3fs (%s, %s)' % (end_time - start_time, model_name, method_name))
|
||||
except Exception, e:
|
||||
self._handle_callback_exception(cr, uid, model_name, method_name, args, job_id, e)
|
||||
else:
|
||||
msg = "Method `%s.%s` do not exist." % (model._name, method_name) \
|
||||
if model else "Model `%s` do not exist." % model._name
|
||||
_logger.warning(msg)
|
||||
|
||||
def _process_job(self, job_cr, job, cron_cr):
|
||||
""" Run a given job taking care of the repetition.
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
Loading…
Reference in New Issue