php – WordPress Cron API在后台运行吗?
发布时间:2020-12-13 16:18:14 所属栏目:PHP教程 来源:网络整理
导读:我正在读取wp-includes中的cron.php代码,而spawn_cron()似乎是实际执行已注册任务的代码. 函数的最后两行: $cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron );wp_remote_post( $cron_url,array( 'timeout' = 0.01,'blocking' = false
我正在读取wp-includes中的cron.php代码,而spawn_cron()似乎是实际执行已注册任务的代码.
函数的最后两行: $cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ); wp_remote_post( $cron_url,array( 'timeout' => 0.01,'blocking' => false,'sslverify' => apply_filters( 'https_local_ssl_verify',true ) ) ); 它只是打开wp-cron.php,将任务作为查询参数传递. cron.php顶部的API描述: * Schedules a hook which will be executed once by the WordPress actions core at * a time which you specify. The action will fire off when someone visits your * WordPress site,if the schedule time has passed.` 我的问题是,让我们说访问者打开网站的一个页面,然后注册的任务由cron API触发.如果任务很繁重并需要几分钟才能完成,那么在任务完成之前,访问者是否会获得一个未完全加载的页面? [编辑] 解决方法$cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ); wp_remote_post( $cron_url,true ) ) ); 使用下面的示例插件,我确认上面的代码(我在问题中引用)是实际调用计划任务的代码.它设置0.0.1超时并访问wp-cron.php.这意味着如果有100个任务,则加载所有任务需要1秒钟.因此它对页面加载速度有轻微影响.但它似乎不必担心太多. <?php /* Plugin Name: Sample Cron Task */ // I used `heavy` because this code was initially written to test how it affects the server response if a heavy task is registered as a cron job. So forget about the naming. add_action('admin_menu','sample_cron_heavy_task'); function sample_cron_heavy_task() { add_options_page( 'Sample Cron Heavy Task','Sample Cron Heavy Task','manage_options','sample_cron_heavy_task','sample_cron_heavy_task_admin'); } function sample_cron_heavy_task_admin() { ?> <div class="wrap"> <?php wp_schedule_single_event(time(),'my_action_name'); $cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ); // executes the registered task immediately wp_remote_post( $cron_url,true ) ) ); echo get_option('sample_cron_heavy_task'); ?> </div> <?php } add_action('my_action_name','myevent'); function myevent() { $msg = date('Y m d h:i:s A') . ': the cron task is called.<br />'; update_option('sample_cron_heavy_task',$msg); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |