it-swarm.com.de

Besserer Umgang mit dem Missbrauch der WP-CRON-Serverlast

Es gibt mehrereBerichteüberwiewp-cronisteinweitvon ideal Lösung, da es jedes Mal ausgeführt wird, wenn eine Seite geladen wird. Dies ist in den meisten Szenarien nicht erforderlich (ein Szenario, in dem dies erforderlich wäre, ist die Verwendung von geplante Posts).

Der übliche Rat ist, define('DISABLE_WP_CRON', true); zu wp-config.php hinzuzufügen und dann einen echten Cron-Job zu planen (sofern Sie über genügend Administratorzugriff verfügen).

Aber ab WP 3.3 gibt es WP_CRON_LOCK_TIMEOUT, das "definiert einen Zeitraum, in dem nur ein Cronjob ausgelöst wird".

Wenn Sie Hunderte von WP -Installationen ausführen, müssten Sie VIELE Cron-Jobs erstellen (und löschen, wenn diese WP-Installation entfernt wird), was zu einem Ärgernis werden kann. Daher scheint es die beste Lösung in diesen Tagen zu sein, define('WP_CRON_LOCK_TIMEOUT', 900);zu setzen (wenn wp-cron alle 900 Sekunden ausgeführt werden soll).

Die Frage ist: Hat jemand schon WP_CRON_LOCK_TIMEOUT für diesen Zweck verwendet? Ist dies die beabsichtigte Verwendung?

5
Gaia

Dies ist die beabsichtigte Verwendung der Konstante WP_CRON_LOCK_TIMEOUT.

Beim Laden von WordPress wird überprüft, ob ein Cron-Job ausgeführt wird (wenn Cron gesperrt ist). Wenn cron nicht gesperrt ist, wird versucht, eine Sperre zu erstellen. Wenn das Zeitlimit für die Sperre nicht erreicht wurde, kann keine Sperre angefordert werden und cron wird nicht ausgeführt.

Wenn kein Cron-Job ausgeführt wird und das Timeout abgelaufen ist (dh eine Sperre kann erstellt werden), wird Cron ausgeführt.

7
EAMann