Antworten auf deine Fragen:
Neues Thema erstellen

laufzeit/speicher Problem

fakerer

Aktives Mitglied

Hallo,

Problemstellung:
nach dem ausfüllen eines Formulars soll mit den eingegebenen Daten ein Pdf erstellt werden und dies dann per Mail verschickt werden.

Da das Pdf gross wird dauert die Erstellung über eine Minute, und da man dies niemanden zumuten kann habe ich versucht es irgendwie anders zu lösen.

Dachte nun ich schreibe die Daten einfach in die Datenbank, und rufe dann per cronojob ein script auf das überprüft ob daten zum verschicken vorhanden sind und wenn ja die pdf's erstellt und diese verschickt.

Problem dabei ist wenn das mehr sind bekomm ich immer die Fehlermeldung das der Arbeitsspeicher zu wenig wird.

Hat jemand einen Tipp, oder einen andren Lösungsvorschlag hätte auch schon an threads gedacht, geht aber leider nicht weil nur php 5.2 :(
 

Duddle

Posting-Frequenz: 14µHz

AW: laufzeit/speicher Problem

Problem dabei ist wenn das mehr sind bekomm ich immer die Fehlermeldung das der Arbeitsspeicher zu wenig wird.
Hast du das Problem auch bei der Variante ohne Cronjob? Wenn ja, dann musst du bei der Erzeugung ansetzen. Wenn nein, dann erzeuge immer nur ein PDF bevor du das nächste anfängst.


Duddle
 

fakerer

Aktives Mitglied

AW: laufzeit/speicher Problem

wenn ich nur eines erzeug läuft alles glatt.
wie schaffe ich es das eines nach dem andren angefangen wird.
Ich lese jetzt alle Ergebnisse aus, welche dann in einer foreach Schleife bearbeitet werden.

Wenn ich eine Funktion nehme die sich immer selber aufruft bis alle verschickt sind ändert sich ja auch nichts.

Freue mich über jede Anrgung.

Danke

ps: ich Möchte bei einem cornojob aufruf alle abarbeiten wenn es irgendwie geht.
 
Zuletzt bearbeitet:

Duddle

Posting-Frequenz: 14µHz

AW: laufzeit/speicher Problem

Entweder musst du nach jedem Schleifendurchgang den Speicher bereinigen oder du rufst das Script so lange neu auf bis die Warteschlange leer ist.

Für ersteres musst du entweder die benutzten Variablen überschreiben oder sie mit unset() explizit freigeben. In beiden Fällen wird der allozierte Speicher geleert.

Für zweiteres baust du dein Script so, dass es ein PDF erzeugt falls eines da ist. Falls nicht, beendest du das Programm mit einer entsprechenden Ausgabe und prüfst diese in einem externen Script.
PHP:
<?php
//hier die Warteschlange prüfen
if($warteschlangeIstLeer) {
  exit("leer");
} else {
  pdfErzeugen();
}
?>
Falls du ein Linux-basiertes OS benutzt, läuft wahrscheinlich Bash als Shell. Dann könnte ein kleines Bash-Script wie folgt aussehen:
Code:
while [ "$(php pdfErzeugen.php)" != "leer" ]; do
   echo "pdf wird erzeugt";
done
Dieses Ding rufst du per Cronjob auf und die Sache ist fertig.


Duddle
 

Syphon86

Noch nicht viel geschrieben

AW: laufzeit/speicher Problem

Wie hoch ist denn der aktuelle Memory Wert bei dir? Evtl kannst du diesen für den Cronjob per ini_set('memory_limit', WERT) hochsetzen.

Mit ini_get('memory_limit') kannst du auslesen wieviel Speicher dir zur Verfügung stehen.

Die elegantere Lösung ist aber definitiv die von Duddle, indem du deine Werte nach dem Benutzen wieder freigibst.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben