php – 运行多个WordPress Cron,用于执行两个以不同固定间隔更新
发布时间:2020-12-13 22:23:45 所属栏目:PHP教程 来源:网络整理
导读:我在Wordpress中执行了多个cron作业.首先,我想清楚我已经搜索了很多这个问题,但没有找到确切的解决方案.所以我发布在这里. 问题是一个cron正在运行,但是另一个cron从未运行,我已经为第一个cron安排了每三个小时的间隔,但有时会在一分钟内执行多次,因为这有多
我在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列表应该清楚,并且很可能会解决您的问题.
您的代码中应该修复一些内容以使其更稳定并避免此类问题: >清除插件停用时的预定事件,如下所示: register_deactivation_hook( __FILE__,'my_deactivation'); function my_deactivation() { wp_clear_scheduled_hook('my_hourly_event'); } >清除激活时的预定挂钩(YES:wp_clear_scheduled_hook(‘my_hourly_event’);)而不是检查它是否已经存在(NO:if(!wp_next_scheduled(‘my_hourly_event’))) 祝好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |