[wp-hackers] Dealing with WP cron's raciness

Otto otto at ottodestruct.com
Wed Sep 18 22:59:10 UTC 2013

On Wed, Sep 18, 2013 at 6:06 AM, David Anderson <david at wordshell.net> wrote:
> 3) Create a few processes that are continually calling wp-cron.php (two or
> more):
> while true; do wget -O - http://localhost/mydevwebsite/wp-cron.php; done

Why are you hitting the wp-cron.php file directly? WordPress doesn't
do that normally.

WordPress normally sets the doing_wp_cron transient with the current
time(), then calls wp-cron.php?doing_wp_cron=time. This is a locking
mechanism to prevent the subsequent calls after that from running.

This is not *perfect*, but it is pretty good and prevents most of the
problem you're describing. If you're calling wp-cron.php directly,
you're bypassing this mechanism, and the delay you've added to the
database will cause the locking mechanism to take longer, causing the
race issues.


More information about the wp-hackers mailing list