如何避免cli模式下wordpress内存耗尽
背景
在有些场景下,会写一些脚本在cli模式下跑,比如刷数据之类的任务。
问题以及原因
在一个一直循环跑的任务中,使用wp的数据库或者一些常见的操作都有可能导致内存耗尽,最终脚本被退出。
其原因在于wordpress的wpdb类会保存query,每一条query都会保存在内存中,随着查询越来越多,这个变量得不到释放,于是内存最终会被耗尽。
另外一个原因在于wordpress的object cache,这也会将查询的结果保存在内存!
解决办法
// 不保存查询 define('SAVEQUERIES', false); // 不缓存数据 wp_suspend_cache_addition(true);
你可能还喜欢下面这些文章
如何设置PHP内存大小要设置PHP内存大小,可以使用以下两种方法:方法一、修改php.ini文件在php.ini文件中,可以找到“memory_limit”设置项,将其值设置为所需的内存大小即可。
摘要:parse_term_query过滤器可修改分类查询参数,适用于所有分类查询,包括WordPress后台。针对后台分类问题,特别是小说主题分类过多的情况,通过增加parse_term_query过滤器,可以调整查询参数,解决分类展示混乱
即,查询一堆帖子(例如一个有很多帖子的页面),将它们的所有数据发送到您的。调用的异步性质允许在调用开始和完成之间进行处理,或者可能是因为我没有做了足够多的工作可以看到很大的不同,但是线程版本允许我的页面加载器在加载数据时不会冻结,所以我想这是
站点地图插件的定时任务可以支持百万文章自动刷新,这是怎么做到的。定时任务每次只会执行全部任务的一小部分,最终就可以自动更新所有的站点地图。,那么每次定时任务会依次生成post-1,post-2,post-3。