toscho.design
Redaktion, Druck- und Webdesign aus Halle (Saale)

WordPress: WP-Cron begrenzen

So sehr ich WordPress auch schätze – einige Macken gehen mir tüchtig auf die Nerven. Dazu gehören auch die vielen Requests auf wp-cron.php?doing_wp_cron.
Solch ein Request wird bei (fast?) jedem Aufruf einer Seite oder eines Artikels angestoßen. Zwar werden dabei kaum Daten übertragen, aber ein bißchen Zeit kostet es eben doch, und das Logfile wächst ohne Not.

Ich habe mir deshalb in die Konfigurationsdatei wp-config.php diese kleine Einschränkung eingetragen:

if ( 0 < (time() % 10) )
{
    define('DISABLE_WP_CRON', TRUE);
}

Zu Deutsch: Wenn sich der aktuelle, in Sekunden gemessene UNIX-Timestamp nicht genau durch 10 teilen läßt, verzichte ich auf WP-Cron.

Damit funktionieren noch die Kontrollen auf neue Plugin- oder WordPress-Versionen, doch die Menge der Requests schrumpft dramatisch. Wer noch weniger Aufrufe haben möchte, der erhöhe einfach den Teiler.

Natürlich könnte man die Pseudo-Cronjobs auch einfach komplett abschalten und einen richtigen Cron benutzen. WordPress sendet aber einen POST-Request, dessen Zusammensetzung ich nach jedem Update neu überprüfen müßte, um den echten Cron entsprechend anzupassen. Das ist mir zu umständlich.

Einen guten Überblick über die anstehenden Cronjobs bekommt man mit dem Plugin Cron View. Das sieht dann ungefähr so aus:

Cron View

Wer gerne Plugins ausprobiert, sollte sich das unbedingt mal ansehen, denn nicht jeder Autor schreibt eine saubere Deinstallation.

3 Kommentare

  1. David schrieb am 30.01.2010 23:10:

    Prüft wp-cron lediglich auf evtl. vorhandene Updates der Plugins und des Kernprogramms? Dann kann man das doch gleich abschalten.

  2. Thomas Scholz schrieb am 30.01.2010 23:16:

    @David: Auch Plugins können diese API benutzen, etwa zum regelmäßigen Backup oder für Terminkalender. Und wenn du einen Beitrag erst in der Zukunft veröffentlichen möchtest, wird ebenfalls WP-Cron benutzt.
    Wenn wirklich nur Plugins und Core geprüft werden, dann kannst du es abschalten, wenn es in deiner lokalen Kontrollinstallation noch angeschaltet ist.

  3. daniel schrieb am 20.02.2010 16:48:

    Ich werde deinen Vorschlag gleich mal umsetzen! Hört sich jedenfalls sehr sinnvoll an!

Was sagst du dazu?

RSS-Feed für diese Kommentare · Hinweise zum Datenschutz
Nur das ist Pflicht, der Rest … nicht. Kommentare mit 6 oder mehr Links prüfe ich erst. SEO-Namen, Links auf Partnerprogramme (Affiliate) und ähnlichen Spuk lösche ich.
Bitte maskiere < und > mit &lt; und &gt;, sonst werden sie gefressen.