Support » Allgemeine Fragen » Cronjobs für viele Websites

  • Hallo zusammen 🙂

    Ich habe aktuell Probleme mit meinen Cronjobs.

    Ich habe auf meinem Server aktuell 60 Websites laufen. Um den Server zuentlasten und die Jobs zu definierten Zeitpunkten ablaufen zu lassen habe ich wp_cron deaktiviert. Ich rufe nun auf allen meinen Websites die Cronjobs direkt jede halbe Stunde auf. Das Problem ist nun das dadurch jede halbe Stunde alle cronjobs auf allen Websites ausgeführt werden was zu einer kurzen Überlast meines Servers führt.

    Der Support meinte zu mir das dieser Ansatz für wenige Websites der richtige ist aber nicht für viele.
    Eine Aufteilung auf unterschiedliche Minuten für die Websites erscheint mir leider nicht als die absolut richtige Lösung.

    Ist das der richtige Ansatz den Server zu entlasten?
    Wenn wp_cron an ist werden ja alle Cronjobs nach einem Intervall abgerufen. Wenn ich es so löse werden ja alle Cronjobs direkt ausgeführt also alle die in wp_cron minütlich oder stündlich ausgeführt werden werden hier auf einmal ausgeeführt was ja irgendwo auch nicht richtig zu sein scheint?

    Kann ich nur bestimmte Cronjobs zu bestimmten Zeiten aufrufen? Mir war es wichtig das die BackUps und Updates zu bestimmten Zeiten ausgeführt werden.

    Bin für jeden Tipp dankbar.

    Grüße

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Eine Aufteilung auf unterschiedliche Minuten für die Websites erscheint mir leider nicht als die absolut richtige Lösung.

    Warum nicht?

    Wenn wp_cron an ist werden ja alle Cronjobs nach einem Intervall abgerufen.

    Ich bin mir nicht ganz sicher, was du damit meinst.
    Die Entwickler von WordPress sind in ihrer Weisheite davon ausgegangen, dass WordPress auch auf Webservern laufen soll, die Mindestanforderungen gerade noch erfüllen. Bei vielen Shared-Hosting-Pakete ist (um CPU-Ressource zu sparen) die Einrichtung von Cron-Jobs nicht vorgesehen. Deshalb verwendet WordPress einen „Pseudo-Cron“: bei jedem Aufruf der Website wird geprüft, ob in einem Zeitplan noch Aufgaben eingetragen sind, die ein zurückliegendes Datum haben, um sie dann unmittelbar auszuführen. Daraus ergibt sich z.B. folgendes Szenario: Backup soll um 12:00 Uhr mittags angelegt werden, letzter Abruf der Website 11:42 Uhr, nächster Abruf 15:17 Uhr. Ergebnis: WordPress prüft um 15:17 Uhr den Zeitplan, stellt fest, dass das Backup um 12:00 Uhr hätte erfolgen sollen und holt den Job direkt nach.
    Für interne Jobs (etwa ein Backup, eine Datenbankoptimierung, …) ist das meistens völlig in Ordnung. Kritischer ist es, wenn um 12:00 Uhr eine wichtige Nachricht veröffentlicht werden sollte, weil der erste Besucher um 15:17 Uhr davon noch nichts sieht – die Veröffentlichung wird ja erst durch seinen Besuch ausgelöst. Erst die nächste Besucherin sieht den Beitrag.

    Das Problem scheint eher zu sein, dass 60 Websites auf einem Shared-Hosting-Paket viel zu viel sein können, während bei einem VPS mit ausreichend RAM und CPU-Leistung alles OK ist. Dein Webhoster kann die Auslastung besser beurteilen. Frag mal nach, ob du das Hosting-Paket wechseln solltest. (Wobei da wohl kaum jemand nein sagt? 😉 )

    Thread-Starter fabi1988

    (@fabi1988)

    Vielen Dank für die umfangreiche Antwort.

    Ich hätte es halt gerne alles zeigesteuert gehabt aber das funktioniert wohl nicht so wie ich dachte.

    Ich werde die Jobs nun wieder intervallgesteuert laufen lassen und die Websites welche ich für Testzwecke benötige automatisch besuchen lassen . 🙂

Ansicht von 2 Antworten - 1 bis 2 (von insgesamt 2)
  • Das Thema „Cronjobs für viele Websites“ ist für neue Antworten geschlossen.