Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10465[/thread]

Selbststartendes Perl Script

Leser: 1


<< |< 1 2 >| >> 12 Einträge, 2 Seiten
Inferno
 2007-09-25 21:27
#99984 #99984
User since
2007-06-29
19 Artikel
BenutzerIn
[default_avatar]
Hallo!
ich schreibe momentan ein perl script/programm welches z.b. alle 12 stunden von dem server, auf dem es läuft ausgeführt werden soll. da ich freewebspace-usern die möglichkeit einräumen möchte, dass sie das script ebenfalls nutzen können, ohne zugang zur crontab bzw. zu eigenen cronjobs zu haben, stehe ich vor einem problem.

ich habe gelesen, dass es möglich ist ein perl script zu schreiben, was sich selbst zur definierten zeit ausführt, ohne die crontab zu benutzen. meine idee war erst, eine von perls funktionen zur ermittlung der uhrzeit zu nutzen und anhand des rückgabewertes (gefiltert mit reg. ausdruck) die aktion durchzuführen. allerdings stehe ich damit wieder am anfang des problems, weil dazu ja erst einmal das script gestartet werden müsste. eine ewige scriptlaufzeit empfinde ich auch nicht als sinnvoll. könnte man einen externen prozess laufen lassen um das script in gewünschten zeitabständen immer neu zu starten?

über hilfe und weitere ideen wäre ich sehr dankbar! :)
pq
 2007-09-25 21:37
#99985 #99985
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
ein programm kann sich nicht selbst starten. du musst dafür irgendwie ins system eingreifen.

was aber geht, ist, ein CGI-skript von aussen regelmäßig anzustoßen, welches dann das
eigentliche skript ausführt. dafür gibt es sogar kostenlose dienste, glaube ich.
das CGI-skript sollte aber dann insofern geschützt sein, dass es das skript auch wirklich
nur zu den festgelegten zeiten aufruft. dafür könntest du in einer datei festhalten, wann es
zuletzt lief.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Inferno
 2007-09-25 22:17
#99986 #99986
User since
2007-06-29
19 Artikel
BenutzerIn
[default_avatar]
danke für die schnelle antwort!

das es sich von selbst nicht starten kann ist mir im prinzip klar...es bräuchte halt einen einmaligen manuellen anstoß. dann könnte man ja auf unprofessionelle art und weise eine schleife in verbindung mit sleep() verwenden. da ich diese variante allerdings nicht sehr gut finde (beschränkte scriptlaufzeiten), bin ich nicht näher darauf eingegangen.

diese externen dienste sind mir ebenfalls bekannt :-). ich wollte halt nur nachfragen, ob ich auf diese ganzen sachen verzichten und es auf direktem wege lösen kann ;-)

vielleicht fallen jemand noch ein paar andere möglichkeiten ein? das wäre sehr schön.

danke schonmal im vorraus!
pq
 2007-09-26 01:20
#99991 #99991
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Froschpopo+2007-09-25 22:18:03--
Es gibt übrigens Dienstleistungen, bei denen du solche Cron-Tabellen anlegen kannst und die dann zu den festgelegten Terminen das Script über CGI aus aufrufen.

das sagte ich schon, und Inferno gab auch zu verstehen, dass er das schon kennt.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Inferno
 2007-09-26 00:50
#99992 #99992
User since
2007-06-29
19 Artikel
BenutzerIn
[default_avatar]
Inferno+2007-09-25 20:17:19--
diese externen dienste sind mir ebenfalls bekannt :-). ich wollte halt nur nachfragen, ob ich auf diese ganzen sachen verzichten und es auf direktem wege lösen kann ;-)


genau den z.b. habe ich damit gemeint ;-)
Froschpopo
 2007-09-26 00:53
#99993 #99993
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
die einzigen Möglichkeiten sind sleep und select die aber beide mit hoher Warscheinlichkeit vom Anbieter zeitlich begrenzt werden.
Inferno
 2007-09-26 02:26
#99994 #99994
User since
2007-06-29
19 Artikel
BenutzerIn
[default_avatar]
pq+2007-09-25 19:37:39--
was aber geht, ist, ein CGI-skript von aussen regelmäßig anzustoßen, welches dann das
eigentliche skript ausführt.


genau so eines habe ich jetzt gefunden. eine clevere sache ist es schon, aber dennoch nicht das wahre. das script was ich gefunden habe verlangt, dass man
Code: (dl )
<img src="http://yourdomain.com/cron/virtualcron.php">
in eine gut besuchte HTML seite einbindet. es wird ein 1x1 pixel großes bild dabei erstellt. bei jedem aufruf der seite wird das pseudo bild geladen und damit das script ausgefürt. vorraussetzung ist natürlich, dass die seite gut besucht ist, vor allem wenn die abstände für die cron ausführung relativ eng angelegt sind.

wenn keiner eine andere möglichkeit findet, werde ich wohl dieses script nutzen müssen, wobei es nur eine minimale verbesserung bringt. genauso gut könnte ich auch virtualcron.php mithilfe eines cronjobs auf allen externen servern ausführen lassen, welche keine möglichkeit für das anlegen für cronjobs bieten. somit könnte ich auch gleich wieder einen externen dienst nutzen, um das script auszuführen. dann wäre ich wieder am anfang des problemes angelangt :)
Hagen
 2007-09-26 00:10
#99995 #99995
User since
2007-09-06
233 Artikel
BenutzerIn
[default_avatar]
Ein interessantest Problem, über welches ich mir auch schon (eher erfolglos) Gedanken gemacht habe.

Wahrscheinlich soll immer zu einem bestimmten Zeitpunkt ein Skript ausgeführt werden. Es würde als nicht ausreichen, wenn ein Benutzer die Seite lädt und dann geprüft wird, ob ein 'besonderes' Skript ausgeführt werden soll, weil ein bestimmter Zeitpunkt überschritten wurde. Das wäre jedenfalls relativ einfach.
Gruß
Hagen
Froschpopo
 2007-09-26 00:18
#99996 #99996
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Es gibt übrigens Dienstleistungen, bei denen du solche Cron-Tabellen anlegen kannst und die dann zu den festgelegten Terminen das Script über CGI aus aufrufen.
Ein solcher Dienst wäre http://www.cronjob.de/ der bei einer Googlesuche nach "cronjob" recht weit oben auftaucht. Welcher davon seriös ist musst du bei Interesse selbst herausfinden.
pq
 2007-09-26 11:34
#100000 #100000
User since
2003-08-04
12209 Artikel
Admin1
[Homepage]
user image
Inferno+2007-09-26 00:26:25--
genau so eines habe ich jetzt gefunden. eine clevere sache ist es schon, aber dennoch nicht das wahre. das script was ich gefunden habe verlangt, dass man
Code: (dl )
<img src="http://yourdomain.com/cron/virtualcron.php">
in eine gut besuchte HTML seite einbindet. es wird ein 1x1 pixel großes bild dabei erstellt.

äh, und was ist daran jetzt besser als ein externer cronjob-dienst? zumal es php ist.
irgendwie versteh ich dein problem jetzt nicht.
ob du nun ein solches skript, dass du dir auch schnell selbst schreiben kannst, per
cronjob-dienst oder per pixelbild aufrufst, ist doch völlig wurscht. das skript bleibt ja
dasselbe. du musst es halt nur schreiben.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2007-09-25 21:27.