mdipierro wrote:
ok, in trunk. Thanks for your help with this.

On Mar 3, 8:42 pm, Rowdy <[email protected]> wrote:

Bad news.  I left it running overnight with the 5 and 10 minute jobs and
the check for >= 59 seconds, logging the extra debug messages.

The lowest values for the interval were (these are just the debug
messages where I log the values used in the calculation and comparison):

DEBUG:root:       self.now - start = 59.4419999123 (sb >= 59)
DEBUG:root:       self.now - start = 59.7331020832 (sb >= 59)
DEBUG:root:       self.now - start = 59.8089871407 (sb >= 59)
DEBUG:root:       self.now - start = 59.9066801071 (sb >= 59)
DEBUG:root:       self.now - start = 59.9478530884 (sb >= 59)
DEBUG:root:       self.now - start = 59.9600059986 (sb >= 59)
DEBUG:root:       self.now - start = 59.9605009556 (sb >= 59)
DEBUG:root:       self.now - start = 59.9644701481 (sb >= 59)
DEBUG:root:       self.now - start = 59.9700820446 (sb >= 59)
DEBUG:root:       self.now - start = 59.9701111317 (sb >= 59)
DEBUG:root:       self.now - start = 59.9742279053 (sb >= 59)
DEBUG:root:       self.now - start = 59.9745769501 (sb >= 59)
DEBUG:root:       self.now - start = 59.9763190746 (sb >= 59)
DEBUG:root:       self.now - start = 59.9764039516 (sb >= 59)
DEBUG:root:       self.now - start = 59.9764339924 (sb >= 59)
DEBUG:root:       self.now - start = 59.9844388962 (sb >= 59)
DEBUG:root:       self.now - start = 59.9874939919 (sb >= 59)
DEBUG:root:       self.now - start = 59.9896328449 (sb >= 59)
DEBUG:root:       self.now - start = 59.9899420738 (sb >= 59)
DEBUG:root:       self.now - start = 59.9899940491 (sb >= 59)
DEBUG:root:       self.now - start = 59.9899971485 (sb >= 59)
DEBUG:root:       self.now - start = 59.9899971485 (sb >= 59)

Testing for a delay of 59.99 seconds would mean that any cron jobs
scheduled to run on the above 22 occasions would not run as
Token.acquire() would not obtain a lock.

To me this is significant, as the possibility exists that a once a day
job might fall on an execution time where the interval is between 59 and
59.99 seconds (as in the above 23 seconds) and not run.  When cron
starts up a minute later, the job has lost its opportunity to run, and
that day is skipped (for the once a day job).

I have not started writing the cron jobs for my app yet (there are about
a dozen), so I will see how it goes when the jobs are in place.

But the main problem with jobs running every minute and regularly
skipping have been solved.

Thanx again.

Rowdy

--
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to