我最近在一些插件中注意到了这种模式:
<?php
function MY_CRON(){
wp_schedule_single_event(time(), \'MY_ACTION\');
}
add_action(\'save_post\', \'MY_CRON\');
function MY_FUNCTION(){
// YOUR CODE HERE
}
add_action(\'MY_ACTION\', \'MY_FUNCTION\');
它将避免在您想要快速的挂钩上运行复杂的函数。它可以是“save\\u post”,一个通过AJAX的调用,或者在我的例子中是Woocommerce中的一个新订单。这些文章对其进行了更详细的概述:- Asynchronous functions in Wordpress
- Use WP Cron to Trigger Asynchronous Background Tasks in WordPress on Post Save or Update
我对这种方法的问题是a)如果你的网站流量低,它可能永远不会运行,因为WP Cron的工作方式。b)如果你正在做的事情非常复杂,比如说需要10秒才能完成,那么在下一次页面加载触发WP Cron时,会不会延迟页面呈现?因此,我的管理操作非常迅速,我关闭了浏览器,但下一个访问该网站的用户将获得额外的10秒加载时间?所以我所做的就是把等待时间传给其他人?在某些情况下,这甚至可能是我自己。
所以我的结论是禁用WP-Cron并安排对WP-Cron的调用。php?通过crontab执行\\u cron。但这不会在我的网站运行时阻止它吗?