Hi, ich frag mich gerade ob ich eine Seite aufrufen kann zB bla.blubb/xyz.php?eintrag=abc und diese dann die GET-Parameter erhält und diese verarbeitet aber ich die Verbindung schon abbrechen kann ohne auf die Ausgabe zu warten. Also nur die Seite aufrufen und nach 0.01 Sekunden schon wieder die Verbindung abbrechen.
Geht das?
Seite aufrufen ohne content zu laden?
Meinst du:
Code: Alles auswählen
import webbrowser
webbrowser.open("http:\\hello.de")
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
;-)
Nein, ich meine sowas:
Nur, dass ich nicht so lange warten will, bis das PHP-Script abgearbeitet ist und die Verbindung automatisch beendet wird
Code: Alles auswählen
import urllib
url = urllib.urlopen('http://bla.blubb/xyz.php?eintrag=abc')
Okay, ich werd's mal probieren, danke.
Naja lege artis ist es schon :p Vielleicht will ich einfach nur ein Script auf localhost aufrufen, was 5 Minuten braucht?
Edit: Klappt wunderbar, mein auf dem localhost liegendes Script ( ) arbeitet wunderbar trotz timout weiter.
Naja lege artis ist es schon :p Vielleicht will ich einfach nur ein Script auf localhost aufrufen, was 5 Minuten braucht?
Edit: Klappt wunderbar, mein auf dem localhost liegendes Script ( ) arbeitet wunderbar trotz timout weiter.
Zuletzt geändert von Karl am Donnerstag 19. März 2009, 21:02, insgesamt 1-mal geändert.
Du solltest noch folgendes bedenken: Wenn der Socket frühzeitig geschlossen wird, dürften die meisten Serverimplementationen hierauf mit einer Art IO-Exception reagieren, ob Deine GETs da schon richtig abgearbeitet sind, sollte zwar so sein, ich würd hier aber sicherheitshalber auf Seiteneffekte testen.
Mal ganz abgesehen davon, dass lange laufende PHP-Skripte gerne auch von mod_php getötet werden, wenn die php.ini nicht angepasst wurde ...
Im Allgemeinen ist es nicht koscher, wenn ein Request-Handler auf dem Server fünf Minuten lang läuft, und die "empfohlene" Nutzung dieser Web-"API" das Abbrechen des Requests ist ... lang laufende Aufgaben sind nicht Sache des Request-Handlers, sondern gehören in einen Hintergrunddienst. Bei einem einkommenden Request wird der Hintergrunddienst aktiviert, und der Request-Handler kann sofort einen geordneten Response an den Client zurück liefern.
Im Allgemeinen ist es nicht koscher, wenn ein Request-Handler auf dem Server fünf Minuten lang läuft, und die "empfohlene" Nutzung dieser Web-"API" das Abbrechen des Requests ist ... lang laufende Aufgaben sind nicht Sache des Request-Handlers, sondern gehören in einen Hintergrunddienst. Bei einem einkommenden Request wird der Hintergrunddienst aktiviert, und der Request-Handler kann sofort einen geordneten Response an den Client zurück liefern.
Also mit 5 min ist da was konzeptionell schief gegangen. Zumindest der Apache ist bemüht, belegte Ressourcen so schnell wie möglich wieder frei zu geben, wenn da jetzt die Verbindung zum Client gekappt wird, greift normalerweise der Exceptionhandler und "räumt" Dein Skript samt Interpreter (je nach Anbindung, cgi od. embedded Interpreter) auf. Ich sprech zumindest für mod_python aus eigener Erfahrung, für Perl via cgi kenne ich das Problem von einem Freund, der Probleme mit spontanen Verbindungsabbrüchen hatte, was ihm mit seinem Transaktionsmodell einiges Kopfzerbrechen gekostet hat.
Und localhost gibts nun wirklich bessere Möglichkeiten, so ein Skript anzustoßen, ansonsten siehe lunars Post.
Und ohne Dein obiges Smily überinterpretieren zu wollen, hier mal ein Zitat aus der Wikipedia. Ist natürlich offtopic
Und localhost gibts nun wirklich bessere Möglichkeiten, so ein Skript anzustoßen, ansonsten siehe lunars Post.
Und ohne Dein obiges Smily überinterpretieren zu wollen, hier mal ein Zitat aus der Wikipedia. Ist natürlich offtopic
Computersabotage im Sinne des deutschen Strafrecht ist das Stören einer fremden Datenverarbeitungsanlage, die für einen anderen von wesentlicher Bedeutung ist.
Computersabotage ist in Deutschland gemäß § 303b des Strafgesetzbuches (StGB) ein Vergehen, welches mit Freiheitsstrafe bis zu drei Jahren, in besonders schweren Fällen bis zu zehn Jahren, oder Geldstrafe bestraft wird.