PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : php - teile des scripts im hintergrund ausführen



JAF
16-03-2007, 09:48
hi,

hat jemand eine idee wie man das realisieren kann?

ich moechte aus 3 datenbankservers statistiken basten mit php...
da die abfragen jeweils immer ca 1 minute dauern aufgrund der vielen datensaetzen moechte ich, dass php diese gleichzeitig durchfuehrt.

hat jemand eine idee wie ich das am besten mache?

mfg johannes

Romanday
19-03-2007, 12:04
hi,

hat jemand eine idee wie man das realisieren kann?

ich moechte aus 3 datenbankservers statistiken basten mit php...
da die abfragen jeweils immer ca 1 minute dauern aufgrund der vielen datensaetzen moechte ich, dass php diese gleichzeitig durchfuehrt.

hat jemand eine idee wie ich das am besten mache?

mfg johannes


3 Rechner nehmen.:D

JAF
19-03-2007, 15:56
hi,

3 rechner helfen mir auch nix ;)
bzw. werde die daten 1x direkt vom orcale server und 2x von einem php-server der auf den oracle zugreift realisieren.

nur wie gesagt, wie ich das am besten mit der gleichzeiten ausfuehrung mache, weiss ich immer noch nicht sicher ;(

mfg JAF

Romanday
20-03-2007, 04:39
hi,

3 rechner helfen mir auch nix ;)
bzw. werde die daten 1x direkt vom orcale server und 2x von einem php-server der auf den oracle zugreift realisieren.

nur wie gesagt, wie ich das am besten mit der gleichzeiten ausfuehrung mache, weiss ich immer noch nicht sicher ;(

mfg JAF

1 Computer kann nur 1 Rechenaufgabe zu einem Zeitpunkt lösen.
Nicht mehr und nicht weniger.
Du kannst Aufgaben teilen, stückeln oder zu verschiedenen Zeitpunkten starten.
Aber es bleibt dabei, nur eine Rechenaufgabe pro Zeit.

Turbohummel
20-03-2007, 06:54
Stimmt nicht, es gibt zumindest eine Quasi-Gleichzeitige Ausführung, nennt sich Multi-Threating.
Und mit DualCore-Prozessoren ist das sogar wirklich Dual.

Was JAF sucht sind Cron-Jobs.

JAF
20-03-2007, 12:41
cronjobs ist auch nicht wirklich brauchbar ;(
da wuerde ja bedeuten, dass ich die statistik nicht in echtzeit,
sondern nur zu definieren zeitpunkten waere.

wir funktioniert das mit z.b. C? da geht das ja auch, oder?
gleichzeitig ist schon klar das es auf einer cpu direkt nicht laeuft,
aber z.b. ein mp3-player muss ja auch zur "selben zeit"

1) datei lesen
2) dekodieren
3) ausgeben
(und vermutlich noch andere dinge, z.b. bildschirmausgabe, reaktion auf benutzereingaben, usw)

wie funktioniert das dann hier?
geht das nur mehr prozesse bzw. threads??

mfg jaf

Turbohummel
20-03-2007, 13:29
Du kannst den Job ja minütlich starten, wenn die Generierung wirklich eine Minute dauert.
PHP läuft auch als Hintergrundjob stabil, du musst dann eben für jeden der Datenbankserver einen solchen starten.

jeebee
20-03-2007, 14:59
möglicherweise kannst du mit pcntl_fork (http://ch2.php.net/manual/de/function.pcntl-fork.php) etwas machen. Beachte bitte den obersten User-Kommentar. Da gehts gerade um fork und Datenbankzugriff.

/edit: hab jetzt noch die restlichen Kommentare gelesen und hab gerade gesehen, dass fork nur geht wenn du PHP über CGI oder Kommandozeile laufen lässt...

elrond
03-04-2007, 06:56
du kannst es über die linux-shell lösen, indem du die jobs auf der shell ausführst (keine sql im php(-frontend)) , den aufgerufenen job per "&" in den hintergrund schickst und auf ergebnisse in dateiform wartest.

Dabei teilt das system seine ress so auf, wie's benötigt wird ;)