php in Java einbinden (wirklich so rum, nicht Java in php)

Status
Nicht offen für weitere Antworten.

Campino

Top Contributor
Hi,

ich hab ein php-Skript, dass Datenbankeinträge bearbeitet und dabei ein paar überflussig macht und löscht. Die Datenbank hat im Moment etwa 600 Einträge von denen gut die hälfte gelöscht werden könnte, wenn der Skript sie bearbeiten würde. Im Normalfall nimmt der Skript sich etwa 10-20 und bearbeitet die, was auch reicht. Ich würde aber gerne ALLE 600 mal bearbeiten lassen. Wenn ich den php-Code entsprechend anpasse und auf einem normalen Webserver ausführe, kommt
Code:
Maximal Exekusion time extended...
(oder so). Muss ich mal nen Nachmittag damit zubringen, dann immer auf neu laden zu klicken, oder gibt es einen php-Parser, der sich in Java einbinden lässt, so dass ich einfach in Java 'ne entsprechende Schleife legen kann?

danke schonmal,

Campino
 
Hoi,

davon wüsste ich nichts.

Aber schon mal an PHP CronJobs gedacht?
Legst Du nen cronJob an der alle vllt 5 Minuten Dein Skript startet.
Dann brauchst Du nicht neu starten.

Aber die Tatsache, das Dein PHP Skript selbst immer abbricht, würde mich viel mehr beunruhigen.
Vielleicht schreibts Du da mal was um^^ 😉

greetz
SLi
 
gibts doch ne PHP Einstellung (max execution time), die dafür zuständig ist? schau mal in php.ini; kannst du evtl. auch in .htaccess manipulieren

=> geht natürlich nur, wenn du kontrolle über den server hast

ist oft auf 30 Sekunden gesetzt - so lange sollte keine DB Operation laufen - hast du schon mal daran gedacht, nicht in einer Schleife durch die ganzen Zeilen zu laufen, sondern mit

update ... where ...

delete ... where

mehrere Zeilen auf einmal zu bearbeiten?
 
1. Im normalfall läuft das Skript, nur jetzt grade will ich nicht bloß 10 DB-Einträge (wie sonst) sondern alle 600 durchgehen.

2. Mehrere zeilen auf einmal bearbeiten geht nich, weil die zeilen jede eine bestimmte zeit, die von ihrem Inhalt abhängig ist existieren soll, dass muss php est prüfen.

3. Ich glaub ich werde an der maximal execusion time drehen
 
zur not kannste doch auch aus java aus das script ausführen. musst natürlich den php parser installiert haben.
 
Danke für die Tipps, die lange Laufzeit war aber doofheit 😳 nach entfernen der Endlosschleife hat's etwa 6 sek. gedauert....
 
So etwas geht (zwar etwas umständlich) komplett in PHP (ist also eigenlich kein Java-Thema).

Ich versuch' das mal ohne Code.

1. Request mit den zu löschenden Daten an das Script senden.
2. TimeStamp (TimeSnapshot) nehmen.
3. mit WHERE abfragen, wieviele und welche Datensätze in Frage kommen.
4. während TimeStamp + max_execution_time < time(), Datensätze in separaten Abfragen behandeln.
5. wenn noch Datensätze übrig sind, Seite mit META- oder JavaScript-Refresh erstellen, welche den oben übergebenen Request nachbildet (z.B mit <input type="hidden" ...).

Das ist jetzt zwar sehr abstrakt, aber ich hoffe das hilft dir weiter.

Wenn nicht... gibt es da nicht irgendwo in der Java-Welt auch etwas für MySQL? So etwas hab' ich doch irgendwo schon einmal gelesen.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben