phpbar.de logo

Mailinglisten-Archive

[php] Crons setzen sich fest

[php] Crons setzen sich fest

Nico Haase nico.haase at gmx.de
Mon Aug 28 12:52:37 CEST 2006


Moin,

Lutz Zetzsche schrieb:
>> irgendwas stimmt mit PHP nicht: Auf meinem Server laufen PHP 5.1.4
>> und einige Crons. Einer davon soll an sich minütlich aufgerufen
>> werden, was kurz checken und sich dann per die() wieder
>> verabschieden. Pustekuchen: Nur zufällig hab ich gestern abend
>> gemerkt, dass der Load bei knapp 80 lag, Verursacher waren viele
>> PHP-Prozesse, das können an sich nur die Cronprozesse sein. Was ist
>> da los? Kann PHP sich nicht wieder beenden oder hab ich im Script
>> (Update von Amazondaten per Webservices inkl FTP-Verbindung zum
>> Übertragen der Cover auf den eigenen Server) was falsch gemacht?
>
> ein paar zusätzliche Details wären hilfreich. :-)

Daran solls nciht scheitern ;)

> Was machen die Crons?

Zuerst werden per JOIN ISBN-Einträge aus einer Buchtabelle gesucht, die in
der Tabelle mit den Amazon-Daten nicht vorhanden sind. Neue ISBN werden
hierhin übernommen. Dann werden alle ISBN abgefragt, zu denen noch keine
Infos vorliegen (Spalte mit der letzten Datenaktualisierung steht auf 0),
und mit diesen ISBN wird dann eine Anfrage auf die Amazon-Webservices
gestartet. Nach Datenrückgabe werden die ermittelten Preise in die Datenbank
eingetragen und Cover auf meinen Server transferiert.

> Können sie ihren Job auch in einer Minute erledigen,

Grundsätzlich ja, da meist nur eine ISBN vorliegt, für die die Daten
abgefragt werden müssen.

> oder läuft der Job schon erneut an, während der vorhergehende Aufruf noch
> gar nicht abgeschlossen werden konnte?

Könnte das das Problem sein? Garantieren kann ich nicht, dass es
Überschneidungen gibt (siehe Reinholds Hinweis mit Nichterreichbarkeit der
Amazone), aber grundsätzlich sollte das wegen der kurzen Laufzeit nicht
passieren.

> Wie fängst Du Zeitüberschreitungen oder Abbrüche bei externen
> Verbindungen ab etc.?

Die Abfrage läuft über die amazonLib / amazonSOAP, und diese Klasse wiederum
bedient sich bei nuSOAP. Die Standardeinstellung ($timeout = 0,
$response_timeout = 30) von nuSOAP wird nicht verändert.

> Loggst Du mit, was Deine Cronjobs machen? So könntest Du schneller
> herauskriegen, wo es hakt.

In dem Fall logge ich noch nicht detaillierter mit, weil ich das erst am
Wochenende eingerichtet habe. Einzige Rückmeldung ist derzeit eine Mail, die
ich bei Abfrage mindestens einer ISBN an mich verschicken lasse.
mfg
Nico

-- 
www.buchtips.net - Rezensionen online

php::bar PHP Wiki   -   Listenarchive