urllib + timeout mit Python 2.2.x
Ab Python 2.3 kann man ja mit socket.setdefaulttimeout(1) einen Timeout auch für urllib "setzten". Leider hab ich auf dem Server nur Python 2.2.x :( Ich brauche aber auch dafür einen Timeout bei einem urllib.urlopen()... Nun hab ich mir gedacht, das man es mit threading machen könnte: =========================================================== import urllib, threading class urlopen(threading.Thread): def __init__( self, url, timeout ): self.url = url threading.Thread.__init__(self) self.start() self.join( timeout ) self.stop() def run(self): self.u = urllib.urlopen( self.url ) def stop( self ): print "soll gestoppt werden..." print "Starte..." page = urlopen( "http://192.168.0.0", 1 ) print "OK" =========================================================== Aber wie kann ich einen blockierten urlopen() bei stop() anhalten??? _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On Tue, Aug 30, 2005 at 07:52:33AM +0200, jens wrote:
Ab Python 2.3 kann man ja mit socket.setdefaulttimeout(1) einen Timeout auch fuer urllib "setzten". Leider hab ich auf dem Server nur Python 2.2.x :( [...]
Besorg dir timeoutsocket.py. Erster Ansatz mit Google, das zu finden: http://projects.isotoma.com/isotoma/file/trunk/timeoutsocket.py?rev=1&format=raw -- Gerhard _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Gerhard Haering schrieb:
Besorg dir timeoutsocket.py.
Das kenne ich auch, aber ich find's ein wenig "viel" Code... Würde es nicht auch gehen, mit dem abwürgen vom Thread? Siehe meinen Code... -- Mfg. Jens Diemer ---- http://www.jensdiemer.de _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On Tue, Aug 30, 2005 at 02:09:02PM +0200, jens diemer wrote:
Gerhard Haering schrieb:
Besorg dir timeoutsocket.py.
Das kenne ich auch, aber ich find's ein wenig "viel" Code... Wuerde es nicht auch gehen, mit dem abwuergen vom Thread? Siehe meinen Code...
Wenn man das Modul importiert, ist es nicht "viel" Code ;-) Ein import und ein setDefaultSocketTimeout() w�rden m. E. ausreichen. -- Gerhard _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Am Tuesday, 30. August 2005 14:09 schrieb jens diemer:
Gerhard Haering schrieb:
Besorg dir timeoutsocket.py.
Das kenne ich auch, aber ich find's ein wenig "viel" Code... Würde es nicht auch gehen, mit dem abwürgen vom Thread? Siehe meinen Code...
Man kann threads nicht abwuergen. Google in c.l.python, da wurden Tonnen von Diskussionen darueber gefuehrt. Diez _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (4)
-
Diez B. Roggisch
-
Gerhard Haering
-
jens
-
jens diemer