having a single worker for each task can be daunting (well, you could wrap
web2py.py -K appname in a never-ending loop so it's restarted as soon as it
gets killed)....
#!/bin/sh
while true
do web2py/web2py.py -K yourapp
echo 'killed, restarting in a bit'
sleep 2
done
but I'm curious about your use-case. Why do you need to terminate a RUNNING
task (that can't be accomplished using the timeout parameter)?
On Monday, March 11, 2013 9:18:48 PM UTC+1, dlypka wrote:
>
> 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.