WordPress cron作业会减慢页面加载速度吗?

时间:2013-12-10 作者:urok93

如果用户访问一个站点,并且他的访问触发了一个非常密集的cron作业,那么页面加载速度对他来说会较慢,对吗?据我所知,页面在加载之前不会等待cron作业执行,但由于cron作业将并行运行,因此页面加载可能仍然会变慢,因为服务器很忙,对吗?

2 个回复
最合适的回答,由SO网友:Oleg Butuzov 整理而成

简短回答-Nope. 任何页面请求都会初始化计划队列。这只是一个初始化请求。Wp cron请求是一个独立的请求。

so请求URL/somepage 您只需将请求初始化为/wp-cron.php

然而,如果cron事件不能很好地工作(它有1000个db查询,例如,或者它请求了一个很长的响应资源),或者两者兼而有之,或者为每个请求重新调度cron事件。。。就像任何其他http请求一样,它会消耗资源、CPU性能、内存等。。。如果它占用了足够的资源,您的页面将变慢。

SO网友:Jake

简单的回答是yes, 在大多数情况下。

首先,在大多数设置中,生成cron作业会导致页面加载延迟1秒,因为这是通过具有1秒超时的环回HTTP请求完成的-请参阅https://wordpress.org/support/topic/save-a-full-second-on-cron-execution/.

其次,派生的作业现在将与数据库访问(以及其他资源)的页面负载竞争。多个进程可以同时读取数据库;但是,每当进程写入数据库时,默认情况下会锁定该进程,以防止任何其他进程同时进行写访问或读访问-请参阅https://stackoverflow.com/questions/1005206/does-sqlite-lock-the-database-file-on-reads#answer-1005218. 这一影响取决于cron作业的数据库更新有多复杂,以及数据库实际被锁定的时间有多长,可能无关紧要。当然,如果一个cron作业在请求页面时碰巧正在运行,这也是一个问题,但在页面加载时生成cron作业保证了它们至少会影响页面加载。

如果您的服务器/主机允许,建议您使用以下命令设置计划的cron作业,使其每隔几个小时运行一次

php -q /path/to/wp-cron.php
并使用中的以下条目禁用页面加载时的cron生成wp-config.php:

define(\'DISABLE_WP_CRON\', true);

结束

相关推荐

Running WP_Upgrader via Cron

我编写了在页面运行时更新核心的代码。当我通过管理挂钩使用代码时,一切都正常admin_init 但当我将其添加到cron函数或通过任何前端挂钩运行它时,它不起作用(致命错误)init 或template_redirect 等因此,我试图要求class-wp-upgrader.php 文件add_action(\'init\', \'kit_wp_auto_update\'); // doesn\'t work // add_action(\'admin_init\', \'kit_wp_auto_