no probl. once you figure out that the scheduler is a queue processor, it's very easy to plan properly. You may want to rethink slightly differently your variables only if your "historical mindset" is with cron-like interfaces.
On Saturday, August 3, 2013 7:23:23 PM UTC+2, Roberto Perdomo wrote: > > :-D Thanks Niphold, using repeats = 2 and no stop_time is the best > solution. I did not realize that I could do it that way. > > Thanks again. > > Best regards. > > > 2013/8/3 Niphlod <[email protected] <javascript:>> > >> ok, explanation is clearer. Although scheduler was not meant to be >> executing task on a precise-timing (its a queue processor, not cron), but >> instead it executes the tasks that are available, all that is needed is for >> you to understand how it works. >> >> It's not as precise as cron, because scheduler polls every x seconds the >> scheduler_task table to see if there is anything to do, and then spawns a >> process to execute the task. >> If you need your mails to start exactly at 12:00:00 and at 14:00:00, I'm >> assuming you understood how to make it work in the wrong way. >> >> Scheduling a start_time of 12:00:00 and a stop_time of 14:00:00 assures >> you that no tasks will be picked before 12:00:00 and later than 14:00:00. >> If you need that task to fire two times only, then setting a period of 4 >> hours will never get you 2 executions, because if the first task is picked >> around 12:00:00 it will be "rescheduled" for execution 4 hours later, at >> 16:00:00. The point is, you set the task to never execute past 14:00:00, so >> the second execution will never take place at 16:00:00. >> >> Be careful though: the scheduler can "spend" some seconds of "sleep" >> before picking the tasks, so calculating those times so precisely can get >> you in the situation where you set 12:00:00 as start_time, 14:00:00 at >> stop_time and 7200 as period, but never get to the second execution. >> >> That's because scheduler uses the time the task was picked up (that may >> very well be 12:00:05) to calculate the next time a task will be >> effectively be able to be picked up, and in that case, it will be 14:00:05. >> >> If so, you have a few choices (based on your loads - meaning how many >> concurrent task you may have at 12:00:00), the simplest of them all (given >> your current mindset) is to set stop_time at 14:01:00 instead of 14:00:00, >> assuming you can "forgive" that one minute ahead. >> >> But, if I understood your requirements, why don't you just use repeats=2, >> start_time=12:00:00, period=7200 and no stop_time at all ? >> This will guarantee that the first execution will take place after >> 12:00:00 (again, assuming a normal load, it could be picked up a few >> seconds later, e.g. 12:00:15) and the second one at , e.g., 14:00:15 , and >> then the task will result as COMPLETED after exactly 2 executions. >> >> >> >> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "web2py-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

