Thanks Niphlod and good point. I am using it with LOAD() so im still
maintaining async, I just need to know when its ready. This helped a lot, I
did not try db.commit before and did not realize. Thanks again!
On Wednesday, May 28, 2014 1:23:16 PM UTC-7, Niphlod wrote:
>
> Hi.
> There must be something wrong with what you expect.
> The scheduler is an ASYNC process, meaning that - usually - trying to
> fetch the result in the same request that queued it is a wrong idea in so
> many ways that should be obvious.
> That being said, this works without any issues.
>
> models/scheduler.py
> def add(a,b):
> return a + b
>
> from gluon.scheduler import Scheduler
> mysched = Scheduler(db)
>
> controllers/default.py
>
> def index():
> thetask = mysched.queue_task('add', pargs=[3,4])
> db.commit() #otherwise the scheduler process can't see it
> result = None
> task_id = None
> while 1:
> intermediate = mysched.task_status(thetask.uuid, output=True)
> if intermediate.result:
> result = intermediate.result
> task_id = thetask.uuid
> break
> time.sleep(1)
> return dict(res=result, task_id=task_id)
>
> On Wednesday, May 28, 2014 5:55:20 PM UTC+2, Cory wrote:
>>
>> Hi,
>> I am having trouble getting the run_result after web2py has finished a
>> task using web2py's scheduler.
>> The code below is what I am using. The trouble I am having is grabbing
>> the result once the result is
>> ready. Do any of you know how to get the run_result from a task once the
>> task has finished? right now
>> when I try to get the run_result I get a "None" value because I try to
>> get the result before it is ready.
>> The task can take a couple of seconds to finish. I have tried many
>> different ways to get the result once
>> it is ready. For instance, creating a while loop that checks to see if
>> the task status has changed to
>> "completed" then grab the result, but that does not work. Any ideas? I
>> have been stuck on this far too long.
>>
>> task2 = sched.queue_task('upsQuote', pargs = [session.Weight,
>> session.OrigZip, session.DestZip], timeout = 5, start_time = request.now)
>> #add the task
>> task_status2 = sched.task_status(task2.uuid, output=True) #
>> get the task status
>> result2 = task_status2.scheduler_run.run_result
>> # get the result from the finished task
>>
>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
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/d/optout.