Thanks for the quick reply. I suppose a workaround is to have a separate worker for each task. The I can TERMINATE the worker.
A suggestion: can you suggest some standard python scaffolding to include in each task function to make it listen for a kill signal / message? On Monday, March 11, 2013 3:05:21 PM UTC-5, Niphlod wrote: > > once the task is inserted you should not change it's values unless its in > the QUEUED status (technically the ASSIGNED works too, but it's NOT > recommended). > there's no way for the scheduler to terminate a specific task once the > task is started, unless you KILL the worker (setting the worker to > TERMINATE will kill the worker as soon as the RUNNING task is finished). > PS: if you need to execute a task n times, use the repeat argument. using > time.sleep(something) in a task has the side-effect of NOT returning to the > main loop to execute potentially new QUEUED tasks (every scheduler process > is allowed to process a single task at a time). > if you need to limit the time the task runs, use the timeout parameter. > > If something is not clear please ask. > > On Monday, March 11, 2013 8:04:52 PM UTC+1, dlypka wrote: >> >> >> I need a way to terminate a specific Scheduled Task while it is RUNNING. >> I tried using Admin Database Admin to update the scheduler_task.stop_time >> to a time close to now while it was running. >> But the task continued for several more minutes and COMPLETED its normal >> 5 minute run. >> The task calls time.sleep(300) to make it run for 5 minutes. >> >> I guess the Scheduler is not looking at the db values every 3 seconds. >> Is it just checking the in memory task object properties? >> >> Is there a way to update the in memory object properties of a task while >> it is running? >> >> Thanks. >> > -- --- 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.

