onetrickpony的答案基本上是正确的。如果您让WordPress执行其默认操作,或者通过在GET字符串中将“do\\u wp\\u cron”设置为唯一值来获取其URL来手动触发wp cron,那么您可以可靠地预期不会执行两次作业。
但如果执行wp cron。从crontab中的php-CLI来看,情况有所不同。现在,它将检查一个名为WP\\u CRON\\u LOCK\\u TIMEOUT的常量,以确定是否应该忽略瞬态中存储的锁。还有一个竞争条件,使得同一个作业有时可以运行两次。
如果您确实想确保同一个作业不会执行两次,请不要设置DISABLE\\u WP\\u CRON或在crontab中使用curl或wget来获取WP CRON。php类似:
*/10 * * * * wget -q -O "http://www.example.com/wp-cron.php?doing_wp_cron=`date +\\%s.\\%N`" > /dev/null 2>&1
还请注意
bug in 3.3 如果有两个wp cron实例,则会导致作业运行两次。php也在同一秒内启动。现在,它们需要在同一微秒内发射,这仍然是可能的,但极不可能。