Heroku Flask APP besserer Geolocation Service für Lat & Lng - Heroku Errors

Django, Flask, Bottle, WSGI, CGI…
Antworten
Zoja
User
Beiträge: 145
Registriert: Freitag 28. Februar 2014, 14:04

Hallo zusammen!

Ich bin in einer Testphase mit meiner APP und gehe die Heroku Logs durch (App liegt auf Heroku).

Ich bekomme sehr oft einen H13 Error:

Code: Alles auswählen

H13 - Connection closed without response
This error is thrown when a process in your web dyno accepts a connection, but then closes the socket without writing anything to it.

One example where this might happen is when a Unicorn web server is configured with a timeout shorter than 30s and a request has not been processed by a worker before the timeout happens. In this case, Unicorn closes the connection before any data is written, resulting in an H13.
Auch ab und zu einen H27:

Code: Alles auswählen

H27 - Client Request Interrupted
The client socket was closed either in the middle of the request or before a response could be returned. For example, the client closed their browser session before the request was able to complete.
Dies geschieht bei mir immer auf der selben Seite, und zwar, wenn ein neues Zimmer von dem User reingestellt wird.
Hier werden auch für die Adresse des Zimmers die Latitude und Longitude Werte mit gespeichert.

Um diese Werte zu bekommen, benutze ich

Code: Alles auswählen

from geopy.geocoders import Nominatim

Code: Alles auswählen

geolocator = Nominatim()

Code: Alles auswählen

		try:
			if form.hausnr.data:
				location_zimmer = geolocator.geocode(form.land.data + " " + form.stadt.data + " " + form.strasse.data + " " + form.hausnr.data, timeout=10)
			else:
				location_zimmer = geolocator.geocode(form.land.data + " " + form.stadt.data + " " + form.strasse.data, timeout=10)
		except GeocoderTimedOut as e:
			print "Geocoder timeout beim Einstellen", e
Die Errors H13 kommen, weil der Dyno auf die Antwort des geolocators wartet, dieser aber timeout kriegt. Als ich alleine getestet habe und mit ein paar usern ging es ohne Probleme. Jetzt habe ich etwas mehr user. Ich denke, wenn mehrere User gleichzeitig ein Zimmer reinstellen, dann dauert der request zu lange!

Bei H27 schließen die user selbst den Browser, weil es zu lange dauert.

Ich habe bereits einen 10 sec timeout aber dennoch schafft es der geolocator nicht. Das müsste das Problem sein, oder? An dem Dyno liegt es nicht? Ein weiterer Dyno würde nicht helfen, oder?

Gibt es einen besseren Geolocator Service, mit dem Ich durch Adressdaten die Lat und Lng erstellen kann? Kann auch etwas sein, was Geld kostet!

Danke!
Zoja
User
Beiträge: 145
Registriert: Freitag 28. Februar 2014, 14:04

Ich sehe gerade ich kann geopy benutzen und statt Nominatum einfach die Google Maps benutzen mit dem dazugehöreigem API key:

https://github.com/geopy/geopy/issues/171

Ich denke dann würde es eine ganze Ecke besser laufen
Antworten