phpbar.de logo

Mailinglisten-Archive

[php] Wie externe Befehle im Hintergrund ausführen und ausführend lassen?

[php] Wie externe Befehle im Hintergrund ausführen und ausführend lassen?

Manuel Thoenes mt at voodoo-media.de
Die Jan 27 11:27:59 CET 2009


Hi,
>> Grade für solche Anwendungen schreiben wir kleine Daemons.
>>     
> Ja ich hatte bereits an cron gedacht.
>
>   
>> Scripte/Programme, die serverseitig laufen und im (z.B.) 5sekundentakt
>> einen Queue auslesen (Datenbank, Textfile, etc..).
>>     
> Ist das nicht stark belastend? Soo genau kenne ich cron nicht, aber ich glaube 
> die minimalste Zeiteinheit ist eine Minute. Aber ein eigenes Script zu 
> basteln ist wohl möglich.
>
>   
über Cron wärs eher nervig. Ich meinte tatsächlich ein Programm mit
Endlosschleife (mit sleep(5) oder je nach dem), welches nur einmal
gestartet wird. Man muss ein bisschen mit dem Memory-Handling aufpassen,
damit das Script nicht alle 4Stunden abkackt. Aber das muss man in jeder
anderen Programmiersprache auch ;P

>> Wenn im Queue neue 
>> Einträge erscheinen, wird ein Fork erstellt (maximale Anzahl von
>> konkurierenden Forks einstellbar) und der Queue-Eintrag gelöscht.
>>     
> Gute Idee. Da kommt mir spontan ein ganzer Ordner in den Sinn, wo Dateien 
> abgelegt werden - eben die Queue-Files. So kann ich eine Liste füllen, und 
> mm2mm öfter hintereinander aufrufen.
>
>   
Wenn dich sowas interessiert, und du evtl sowas wie einen Hotfolder
realisieren willst (dann gehts auch ohne Daemon) schau dir mal Inotify
an. Du registrierst dich für Actions im Filesystem (z.B. "Datei wurde
erstellt") und Inotify called dich dann an. Dafür gibts im
Debian-Repository auch ein nettes Paket: inotify-tools (vorrausgesetzt
das Kernelmodul ist installiert/geladen) :)

>> Sinnigerweise kann man vor der erstellen des Forks noch schauen, ob der
>> Server derzeit zu sehr beschäftigt ist, etc etc :)
>>     
> Wie genau?
>
>   
Unter Linux kriegst du sogut wie jede Systeminformation aus Files raus.
z.B. die aktuelle Load ( /proc/loadavg ).

Gruß,
Manu

php::bar PHP Wiki   -   Listenarchive