Ergebnis 1 bis 9 von 9

Thema: CronJob mit redirect?

  1. #1
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard CronJob mit redirect?

    Hallo,

    ich habe ein Script, welches teilweise sehr aufwändige Berechnungen / Operationen durchführen muss. Nun habe ich dieses Script mal bezgl. der Laufzeit getestet und es überschreitet bei voller Ausführung aller Features bereits bei 100 Datensätzen die Grenze von 30 Sekunden max_execution_time!
    Das Script wird per CronJob aufgerufen.

    Kann man aus der Funktion heraus die cron.php erneut aufrufen und damit einen 2., 3. usw. Durchlauf starten?
    Oder welche anderen Möglichkeiten habe ich noch?


    Viele Grüße,
    raveolution

    P.S.: Heraufsetzen der Scriptlaufzeit mit set_time_limit(0); ist keine Lösung, weil das nur läuft wenn PHP nicht im Safe Mode ausgeführt wird!

  2. #2
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    Der Workaround mit der cron.php heißt ja nicht umsonst "Poor Mans Cron". :-) Soll heißen: Für mache Dinge braucht man eben professionelles Hosting...

    Wenn du dein Skript nicht weiter optimieren kannst sehe ich zwei Lösungen:
    1. Nutzung einer Hosting-Umgebung, die echte Cronjobs zulässt. Dann ist die Laufzeit kein Thema. Wobei auch dort sollte man es nicht übertreiben.
    2. Du merkst dir, welche Datensätze zu bearbeiten sind und arbeitest pro Aufruf immer einen kleinen Teil durch.

    Bedenke aber bei der 2. Lösung: Der Anwender sieht, dass das Laden der Seite erst nach langer Zeit abgeschlossen wird. Auch Geschwindigkeitsanalysen wie von Google kann dies negativ beeinflussen (und damit das Ranking schlechter werden lassen).

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  3. #3
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Hallo Jan,

    danke für deine schnelle Antwort!

    Ich habe für diese Aufgabe schon die Nutzung eines richtigen CronJobs geplant. Aber das dort die Ausführungszeit keine Rolle spielt, ist mir neu. Gilt dort nicht die max_execution_time? Hast du dafür eine Quelle, wo man das nachlesen kann?

    Ich habe Laufzeittests mit bis zu 200 Datensätzen gemacht und dabei dieses set_time_limit(0) genutzt. Dann habe ich das auf 500 Datensätze hochgerechnet und komme auf eine Laufzeit von ca. 180 Sekunden! 500 Datensätze sind die Grenze, welche durch den Auftraggeber gesetzt wurde - alles was darüber ist, entzieht sich also meinem Verantwortungsbereich.

    Viele Grüße,
    raveolution

  4. #4
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    Infos zum CLI (Command Line Interface) gibt es hier. Dort wird auch beschrieben, dass max_execution_time für CLI auf 0 (unlimitiert) gesetzt wird.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  5. #5
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Ahhh... vielen Dank für den Tipp mit dem CLI! Das kann ich bei meinem CronJob-Manager tatsächlich auswählen. Allerdings erhalte ich bei der Ausführung nun immer einen fehler, mit dem ich absolut nichts anfangen kann:

    Code:
    /tmp/cron_run_command_contaj.sh: line 3: 19948 Killed

  6. #6
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    hmm, als ob das Skript irgendetwas/irgendwer abschießt. Vielleicht weil es zu viel Ressourcen benötigt bzw. zu viel Last erzeugt.

    Auf was für einem Server läuft das denn?

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  7. #7
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    Es ist ein Account (also eine Domain) auf solch einem Managed Server: http://www.hetzner.de/de/hosting/pro...anaged/ms5000/

    Wenn ich einen normalen CronJob einrichte und im Script dieses set_time_limit(0); einfüge läuft das Script ohne Probleme durch. Die längste Laufzeit habe ich bisher mit 112 Sekunden gemessen.

  8. #8
    Contao-Urgestein Avatar von jan.theofel
    Registriert seit
    23.06.2009.
    Ort
    Berlin
    Beiträge
    1.846

    Standard

    Hi,

    hmm, dann würde ich mal den Support von Hetzner fragen, warum der Cronjob gekillt wird. Vielleicht findest du auch was in deren Dokumentation zu dem Thema.

    Jan
    Jan Theofel
    Barcamp-Moderator für Corporate-Barcamps und öffentliche Barcamps

  9. #9
    Contao-Nutzer
    Registriert seit
    23.07.2009.
    Ort
    mal hier, mal da
    Beiträge
    141
    Partner-ID
    5687

    Standard

    OK, werde ich machen!
    Vielen Dank für deine Hilfe.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Cronjob anlegen, wie?
    Von maxi62 im Forum Entwickler-Fragen
    Antworten: 19
    Letzter Beitrag: 27.03.2014, 13:35
  2. Redirect iphone
    Von comcat im Forum Sonstige Erweiterungen
    Antworten: 3
    Letzter Beitrag: 15.02.2011, 14:32
  3. SSL redirect und IE7 need HELP!!
    Von jony im Forum Geschützte Bereiche/Mitglieder
    Antworten: 8
    Letzter Beitrag: 07.04.2010, 13:51
  4. Cronjob
    Von ricola im Forum Sonstiges zu Contao
    Antworten: 7
    Letzter Beitrag: 25.08.2009, 17:19
  5. [redirect]
    Von StephanE im Forum Sonstige Erweiterungen
    Antworten: 2
    Letzter Beitrag: 29.07.2009, 08:56

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •