On Sun, 9 Dec 2018 at 23:44, Nils Nolde <[email protected]> wrote: > > Hi, > > somehow it fixed itself.. Now, it's not freezing the app, I'm very pleased:) > I didn't specify the output feature sink before, as I was still testing. So > maybe that made a difference. Anyways, consider the question closed. > > One other thing concerning styling output layers from processing algorithms, > but I'll open another question for that. Actually I'll do it on Stack > Exchange first.
I'll reply on that stackexchange thread. Nyall > > Thanks! > > Nils > > On 08.12.18 11:42, Nils Nolde wrote: > > Hi Nyall, > > Ok, I wasn't sure if they're being executed in another thread by default. > > Then it is weird. I'm not doing anything out of the ordinary I guess. I'm > calling the client from within the algo's processAlgorithm() and the client > sleeps on exception here. But even when it's not sleeping and only > requesting, it's freezing the app. > > The algo from the branch in the links above works (not much else though atm), > in case anyone wants to see it in action. There is an API key in that branch, > so all ready to go. Will delete the key soon of course. If you try: best on a > (single geometry) point layer with > 200 points. > > Anyways, hope someone can clear up the mystery. > > Thanks > Nils > > On 08.12.18 05:20, Nyall Dawson wrote: > > On Sat, 8 Dec 2018 at 09:14, Nils Nolde <[email protected]> wrote: > > Hi, > > I'd like to extend the openrouteservice API client plugin with a > processing provider, but I run into problems implementing an error catch > for 'Query limit exceeded' which is usually set to 40 requests/min. I > want the plugin to be able to continue requesting when it hits that > limit, after waiting the appropriate amount of time. > > Currently I'm doing the following: > > - The request is made in a 'client' module. That client module is called > by the processing algorithms (e.g. isochrones) whose input feature > source can have more than 40 features and likely exceed the minutely limit > > - When the limit is exceeded, the 'client' module catches the HTTP error > and invokes a time.sleep() for (60 - seconds_since_first_request) > seconds, and then continues requesting > > That freezes QGIS obviously, which is not what I want. > > Any idea how to deal with this? I have no idea how to delay Python > execution without freezing the main application.. > > By default algorithms are executed in a background thread, so I'm > surprised to hear that you're getting a freeze here. Did you change > your algorithm to prevent this background execution? How are you > launching the algorithm? > > Nyall > > Many thanks > > Nils > > _______________________________________________ > QGIS-Developer mailing list > [email protected] > List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer > Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer _______________________________________________ QGIS-Developer mailing list [email protected] List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
