Seite 1 von 1

Funktion im Hintergrund ausführen

Verfasst: Samstag 19. April 2008, 22:18
von MatthiasMatthias
Hallo Python-Experten,

ich habe eine globale Funktion, die (von mehreren Klassen aus aufgerufen wird und) mit urllib eine etwas länger dauernde HTTP-Anfrage durchführt. Nun steht das Programm während dieser Zeit still und ich habe mich gefragt, ob man diese Anfrage irgendwie im Hintergrund ausführen kann und nach erfolgreicher Abarbeitung mitbekommen kann, dass die Anfrage nun durchgeführt wurde.

Habt ihr ne Idee?

So sieht diese Anfrage aus (Rückwärtssuche auf 11880.com):

Code: Alles auswählen

def lookup_11880_(phone_number):
	""" 
	This function searches for an alias name of a number on www.11880.com
	""" 

	# connect to www.11880.com
	try:
		parameter = urllib.urlencode ({
			"fuseaction" : "Suche.rueckwaertssucheresult", 
			"init" : "true",
			"change" : "false",
			"searchform" : "Rueckwaerts",
			"tel" : phone_number
			})

		httprequest = urllib.urlopen("http://www.11880.com/Suche/index.cfm", parameter)

		htmllist = httprequest.read()
		pattern = re.compile(".*nam_header[^>]*>[^>]*>([^<]*).*")
		namelist = pattern.findall(htmllist)

		ergname = namelist[0]

		# format the result in utf-8
		ergname = ergname.replace("\r","")
		ergname = ergname.replace("\n","")
		ergname = ergname.replace("\t","")
		ergname = ergname.decode("iso-8859-1")
		ergname = ergname.encode("utf-8")

	except:
		print _('INFO: inverse lookup unsuccessfull')
		return phone_number

	print _('INFO: reverse lookup found the followin alias: %s') % (ergname)

	return ergname
[/code]

Verfasst: Samstag 19. April 2008, 22:35
von dennda
Threads.

http://de.wikipedia.org/wiki/Thread_(Informatik)

(Wieso klappt das [url]-Tag nicht?)

Verfasst: Samstag 19. April 2008, 22:42
von Leonidas
dennda hat geschrieben:(Wieso klappt das [url]-Tag nicht?)
phpBB hasst Klammern in URLs wie es scheint. Und eine Menge anderen Kram.

Verfasst: Samstag 19. April 2008, 23:12
von jens
[mod]threading[/mod] - Beispiele hier: [wiki]Tipps und Tricks#Threading[/wiki]