spot_img
HomeJoomla教程Joomla教程菜鸟教程 WP Cron Locking 是如何实现的?

Joomla教程菜鸟教程 WP Cron Locking 是如何实现的?

spot_img

JasperAI 10000字免费额度试用

WordPress 采取措施确保 cron 任务在应该运行一次时不会运行两次,例如,在给出每小时计划时每小时一次,而不是在计划时间偶尔运行两次。

虽然它并非万无一失,但 WordPress 采取了哪些步骤来确保它在预定的时间发生,并且只按规定发生一次?

WordPress divi主题

设置一个瞬态来反映 cron 的状态,当所有任务完成时它会被删除。 如果发现该瞬态,则忽略任何后续请求…

onetrickpony 的回答基本上是正确的。 如果您让 WordPress 执行其默认操作,或者您通过在 GET 字符串中将“doing_wp_cron”设置为唯一值来获取其 URL 来手动触发 wp-cron,那么您可以可靠地期望作业不会执行两次。

但是,如果您从 crontab 中的 PHP CLI 执行 wp-cron.php,情况就不同了。 现在它将检查一个名为 WP_CRON_LOCK_TIMEOUT 的常量,以确定它是否应该忽略存储在瞬态中的锁。 并且有一个竞争条件使得同一个作业有时会运行两次。

如果你真的想确保同一个工作永远不会执行两次,要么不要设置 DISABLE_WP_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

另请注意,如果 wp-cron.php 的两个实例在同一秒内启动,则 3.3 中有一个错误会导致作业运行两次。 现在它们需要在同一微秒内启动,这仍然是可能的,但可能性很小。

高质量外链购买

5分钟生成10篇英文软文article forge软件试用
siteground guangda
WordPress花园官方账号
WordPress花园隶致力于为广大跨境电商和独立站爱好者提供优质的WordPress教程、Woocommerce教程、Facebook、Twitter、tiktok、Instagram教程和谷歌SEO教程等资料和对应的建站推广服务。关注‘哟派出海’公众号了解最新资讯。粉丝福利:Shopline免费独立站建设14天优惠 商务合作: [email protected]
RELATED ARTICLES