gpt4 book ai didi

php - 运行多个 Wordpress Cron 以执行两个函数以不同的固定时间间隔更新数据库

转载 作者:可可西里 更新时间:2023-10-31 23:46:50 25 4
gpt4 key购买 nike

我在 Wordpress 中执行了多个 cron 作业。首先我想明确我已经搜索了很多这个问题但没有找到确切的解决方案。所以我在这里发帖。

问题是一个 cron 正在运行,但另一个 cron 从未运行,我为第一个 cron 安排了每三个小时的间隔,但它有时会在一分钟内执行多次,因为它收到了多封邮件。其他的永远不会执行。

任何人都提供了通过 Wordpress Cron 以不同的固定时间间隔执行两个函数来更新数据库的解决方案。非常感谢。

 //The activation hooks is executed when the plugin is activated
register_activation_hook(__FILE__, 'activate_one');
register_activation_hook(__FILE__, 'activate_two');
//Filter for Adding multiple intervals
add_filter( 'cron_schedules', 'intervals_schedule' );

function intervals_schedule($schedules) {
$schedules['threehour'] = array(
'interval' => 10800, // Every 3 hours
'display' => __( 'Every 3 hours' )
);
$schedules['onehour'] = array(
'interval' => 3600, // Every 1 hour
'display' => __( 'Every 1 hour' )
);

return $schedules;
}

//Schedule a first action if it's not already scheduled
function activate_one() {
if (!wp_next_scheduled('cron_action_one')) {
wp_schedule_event( time(), 'threehour', 'cron_action_one');
}
}

//Hook into that action that'll fire threehour
add_action('cron_action_one', 'execute_one');

function execute_one()
{
//Do something or update in database;
}

//Schedule a second action if it's not already scheduled
function activate_two() {
if (!wp_next_scheduled('cron_action_two')) {
wp_schedule_event(time(), 'onehour', 'cron_action_two');
}
}

//Hook into that action that'll fire onehour
add_action('cron_action_two', 'execute_two');

function execute_two()
{
//Do something or update in database;
}

最佳答案

很可能,在编写代码和测试时间间隔期间,您已经安排了一些其他 cron_action_two 事件,这些事件将在很久以后的某个时间调用。您可以使用显示的方法之一进行检查 here . Cron 列表应该使一切都清楚,并且很可能会解决您的问题。

有一些事情应该在你的代码中修复,以使其更稳定并避免此类问题:

  1. 清除插件停用时的预定事件,如下所示:

    register_deactivation_hook( __FILE__, 'my_deactivation');
    function my_deactivation() {
    wp_clear_scheduled_hook('my_hourly_event');
    }
  2. 激活时清除预定 Hook (是:wp_clear_scheduled_hook( 'my_hourly_event' );)而不是检查它是否已经存在(否:if( !wp_next_scheduled( 'my_hourly_event' ) ))

祝你好运!

关于php - 运行多个 Wordpress Cron 以执行两个函数以不同的固定时间间隔更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com