an ajax request is just like a user hitting a page. They get queued until a thread from your web-workers is free (which is usually ALWAYS the case) and it gets executed right away. It'll definitely be quicker than the IPC done by the scheduler if you want semi-realtime execution.
On Friday, June 3, 2016 at 7:39:44 PM UTC+2, Mark Smith wrote: > > Thanks for the response :). I want to explain my situation a bit more if > that's alright with you Niphlod (I'm a newbie at web dev haha). You're > right, I think I can use a simple ajax request to do it instead, however I > think the task may run a bit slower/make the UI a bit unresponsive? From my > understanding every connection is handled by a single thread so it might be > the case where a 1-2 second task would take 3-4 seconds to run and in that > time the server wouldn't be able to handle any further tasks (like updating > other UI?). Not sure if the previous statements are true however. In my > case when the user clicks "submit" there's no other UI interaction until > the server returns back the results of the task so I don't think the UI > will be any slower (since it'll be an ajax request), but the task might > actually take longer for the server to run (though anything less than 6 > seconds would be an improvement :) ). > > I'll try implementing it with just an ajax request (and no scheduler) and > get back with the results. Thanks again for the helpful response! > On Friday, 3 June 2016 12:45:19 UTC-4, Niphlod wrote: >> >> long story short, no. >> You can get better "pick-up-times" (the time that elapses from when you >> queue the task to when it's started) with the redis version of the >> scheduler but in any case the worst possible scenario won't drop under >> "heartbeat" which is 3 seconds. >> Got it, would be wonderful if the scheduler was even snappier than it is >> but.... the current limitation just makes sense for small corner cases, >> which are: >> - need to run the task on another server than the web-serving one >> - need to run zillions of tasks in a hundred workers farm to offload >> something the webserver can't keep up >> >> That being said, there's another, which is "need to run tasks that go >> beyond the 60 seconds timeout which is enforced in most webservers"... but >> in that case waiting 6 seconds is not that much in comparison. >> >> The thing here is : >> a) you're using pythonanywhere, so you're out of "worker farms" >> b) your tasks are super-duper-speedy (they complete well-below the usual >> timeout for webserver which is 60 seconds) >> c) you want sub-6 seconds "pick-up time".... >> >> why don't you just use a simple ajax request ? >> >> -- 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.

