#869: Avoid bibtask runtime drifting
-------------------------+-----------------
 Reporter:  skaplun      |      Owner:
     Type:  enhancement  |     Status:  new
 Priority:  major        |  Milestone:
Component:  BibSched     |    Version:
 Keywords:               |
-------------------------+-----------------
 Currently a '''recurrent bibtask''' is rescheduled in the future by
 ''summing the {{{current starting time}}} (or the time specified by
 --runtime), and {{{sleeptime}}}.''

 Since bibsched implements a ''best-effort scheduling algorithm'' it will
 try to execute the given recurrent bibtask at a time equal or greater than
 the above.

 This lead to a small (sometime big) drifting of the execution of the task
 which ends up being executed every ''sleeptime'' + ''delta'' seconds.

 A typical issue of the this drifting is with the '''oaiharvest''' task.
 E.g. suppose that this need to be executed always after a remote
 repository has been updated (e.g. say at 4 a.m. everyday). Currently, due
 to this drifting, the task would be scheduled everyday a bit later until
 it would completely miss the remote update.

 This can be solved by changing the rescheduling rule by no longer using
 the current starting time, but by summing enough times ''"sleeptime"'' to
 the original ''"runtime"'' until the scheduled time is in the future.

-- 
Ticket URL: <http://invenio-software.org/ticket/869>
Invenio <http://invenio-software.org>

Reply via email to