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