Ravi Gohil (OpenERP) has proposed merging
lp:~openerp-dev/openobject-server/6.0-opw-578313-rgo into
lp:openobject-server/6.0.
Requested reviews:
Naresh(OpenERP) (nch-openerp)
Related bugs:
Bug #1039600 in OpenERP Server: "ir.cron performances: check "doall"
parameter earlier"
https://bugs.launchpad.net/openobject-server/+bug/1039600
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-opw-578313-rgo/+merge/121544
Hello,
This MP omits unnecessary looping for schedules when we don't want to execute
missed occurance when server restarted(when 'Repeat Missed' is set to False),
hence, improve performance.
Currently, in code execution, while loop advances from datetime set in `Next
Execution Date`(from when server restarted) to current time by the interval
values set. But what system should do is, if `Repeat Missed` is not marked,
while loop should not be executed and `Next Execution Date` should be
calculated by adding interval values to current datetime.
I have fixed this issue, kindly review the fix.
Thanks.
--
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-opw-578313-rgo/+merge/121544
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-server/6.0-opw-578313-rgo.
=== modified file 'bin/addons/base/ir/ir_cron.py'
--- bin/addons/base/ir/ir_cron.py 2011-02-16 14:22:42 +0000
+++ bin/addons/base/ir/ir_cron.py 2012-08-28 07:13:19 +0000
@@ -111,15 +111,17 @@
nextcall = datetime.strptime(job['nextcall'], '%Y-%m-%d %H:%M:%S')
numbercall = job['numbercall']
- ok = False
- while nextcall < now and numbercall:
- if numbercall > 0:
- numbercall -= 1
- if not ok or job['doall']:
+ if job['doall']:
+ while nextcall < now and numbercall:
+ if numbercall > 0:
+ numbercall -= 1
self._callback(cr, job['user_id'], job['model'], job['function'], job['args'])
- if numbercall:
- nextcall += _intervalTypes[job['interval_type']](job['interval_number'])
- ok = True
+ if numbercall:
+ nextcall += _intervalTypes[job['interval_type']](job['interval_number'])
+ else:
+ self._callback(cr, job['user_id'], job['model'], job['function'], job['args'])
+ current_time = now.strftime('%Y-%m-%d %H:%M:%S')
+ nextcall = datetime.strptime(current_time, '%Y-%m-%d %H:%M:%S') + _intervalTypes[job['interval_type']](job['interval_number'])
addsql = ''
if not numbercall:
addsql = ', active=False'
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp