Pearlscript dauerhaft ausführen

Alles, was Perl betrifft, kann hier besprochen werden.

Pearlscript dauerhaft ausführen

Postby *Wishmaster* » 14. September 2009 12:39

Hallo,
da die Taktung eines Cronjobs nicht ausreicht, benötige irgendeine Applikation die ständig läuft.
Da habe ich an etwas wie folgendes gedacht:
Code: Select all
while (1) {

... app ...

sleep(5) ;
}

Ist es irgendwie möglich das ein Script ständig ausgeführt wird? Oder müsste ich das in einer ganz anderen Sprache als Peal lösen? Kann man dann auch irgendwie sicherstellen das das Script ständig läuft und sich nicht aufgehangen hat?

Schonmal vielen Dank für die Hilfe!
*Wishmaster*
 
Posts: 5
Joined: 14. September 2009 12:34

Re: Pearlscript dauerhaft ausführen

Postby Nobbie » 14. September 2009 13:24

Welche Sprache Du nimmst, spielt keine Rolle. Du kannst das Script nur auf keinen Fall via HTTP ausführen, das geht nicht.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Pearlscript dauerhaft ausführen

Postby *Wishmaster* » 14. September 2009 13:33

Also ist es theoretisch auch möglich das Ganze in php zu schreiben.
Und wie kann ich dann dafür sorgen, dass das Script ständig läuft?
*Wishmaster*
 
Posts: 5
Joined: 14. September 2009 12:34

Re: Pearlscript dauerhaft ausführen

Postby Nobbie » 14. September 2009 13:47

*Wishmaster* wrote:Also ist es theoretisch auch möglich das Ganze in php zu schreiben.


Ja.

*Wishmaster* wrote:Und wie kann ich dann dafür sorgen, dass das Script ständig läuft?


Du mußt es (wie die anderen "Dienste", beispielsweise Apache usw.) beim Booten durch den init-Prozess starten lassen (siehe /etc/init.d).
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Pearlscript dauerhaft ausführen

Postby *Wishmaster* » 14. September 2009 13:53

Okay, das klingt schonmal gut, gibt es dann noch irgendeine möglichkeit um zu kontrollieren ob das Script noch läuft und wenn nicht es gegebenfalls zu starten, für den Fall halt dass es sich irgendwie aufgehangen hat.
*Wishmaster*
 
Posts: 5
Joined: 14. September 2009 12:34

Re: Pearlscript dauerhaft ausführen

Postby Nobbie » 14. September 2009 14:00

Du kannst mit "ps -fe" jederzeit schauen, ob es den Prozess noch gibt, aber ob er "hängt" oder das tut, was er tun soll, kann man von außen nicht feststellen. Lass das Script in ein Logfile schreiben und Du kannst sehen, wann der letzte Eintrag war - so machen es andere Dienste auch.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Pearlscript dauerhaft ausführen

Postby *Wishmaster* » 14. September 2009 14:20

Ok schonmal vielen Dank für die Hilfe. Jetzt hab ich schonmal eine grobe vorstellung wie ich das realisieren kann.

Kann ich dann in diese logfile mit php reinschauen und gegebenenfalls per php-Befehl mit exec den Prozess wieder starten?
So könnte ich dann per Cron automatisch dafür sorgen das das Script wieder ins laufen kommt, falls es hängt.
*Wishmaster*
 
Posts: 5
Joined: 14. September 2009 12:34

Re: Pearlscript dauerhaft ausführen

Postby Nobbie » 14. September 2009 14:37

*Wishmaster* wrote:Kann ich dann in diese logfile mit php reinschauen und gegebenenfalls per php-Befehl mit exec den Prozess wieder starten?
So könnte ich dann per Cron automatisch dafür sorgen das das Script wieder ins laufen kommt, falls es hängt.


Jain. Reinschauen geht natürlich - aber "ans Laufen" bekommst Du ihn nicht mehr. Dann muss er neu gestartet werden. Aber wenn das dann im crontab gemacht wird, kann man sich das init-Gedöns wieder sparen. Also entoderweder.

Ich frage mich sowieso, was ist so dringlich, dass es alle 5 Sekunden irgendwas machen muss - das klingt wie ein fehlerhaftes Konzept. VIelleicht wäre es besser, wenn Du mal erklärst, was sich eigentlich dahinter verbirgt bzw. was Du wirklich vor hast. Vielleicht gibt es ja eine bessere Lösung.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Pearlscript dauerhaft ausführen

Postby *Wishmaster* » 14. September 2009 19:45

Ich möchte halt für sowas wie eine Art Auktionshaus eine Automatisierung einrichten die automatisch mitbietet. Sowas wie einen Bietbutler also.
Hatte da jetzt keinen anderen Ansatz gefunden als beispielsweise alle 5 Sekunden etwas zu machen. Hättest du einen alternativ Ansatz?
*Wishmaster*
 
Posts: 5
Joined: 14. September 2009 12:34


Return to Perl

Who is online

Users browsing this forum: No registered users and 3 guests