ok, seems more a goal of a workflow engine than a task queue, but I'll see 
what can be done.

On Monday, March 11, 2013 10:54:10 PM UTC+1, dlypka wrote:
>
> a supervsior may decide to kill a task started by one of his team members.
>
> On Mon, Mar 11, 2013 at 4:50 PM, Niphlod <nip...@gmail.com 
> <javascript:>>wrote:
>
>> "business condition" like ????
>> it seems a poor design to have a task, than watch it and if it "hangs for 
>> some reason" kill it abruptly not based on "task started a while ago"
>>
>> PS: are you on windows ? signal management on win poses a lot of 
>> limitations.
>>
>>
>> On Monday, March 11, 2013 10:27:17 PM UTC+1, dlypka wrote:
>>>
>>> timeout does not handle the case where it is discovered that the task 
>>> needs to be stopped ASAP due to a business condition.
>>> For example the remote server may have limited connections available so 
>>> if a task runs into trouble, the process needs
>>> to be killed ASAP to release the precious remote connection.  That is 
>>> the case in my application.
>>>
>>> Even with a while loop, there will have to be a way get the win32 
>>> process id of the python task for a given worker so the right one
>>> can be killed.
>>>
>>> Looks like a better solution is for the task to have its own manager 
>>> thread that can listen for kill requests.
>>> i.e. the scheduler tasks need to be written using a standard piece of 
>>> scaffolding code to provide fine-grained task management.
>>>
>>> On Monday, March 11, 2013 3:27:35 PM UTC-5, Niphlod wrote:
>>>>
>>>> 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 a topic in the 
>> Google Groups "web2py-users" group.
>> To unsubscribe from this topic, visit 
>> https://groups.google.com/d/topic/web2py/7-ZOS_In8IU/unsubscribe?hl=en.
>> To unsubscribe from this group and all its topics, send an email to 
>> web2py+un...@googlegroups.com <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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to