首页 > 其他分享 >pbootcms模板自动清理runtime缓存,自动清理缓存

pbootcms模板自动清理runtime缓存,自动清理缓存

时间:2024-10-01 23:01:11浏览次数:9  
标签:文件 缓存 清理 session 自动 time data 模板

1. 修改控制器文件

  1. 打开控制器文件: 打开 /apps/home/controller/ExtLabelController.php 文件。

  2. 找到现有函数: 找到以下代码段:

    // 测试扩展单个标签
    private function test()
    {
        $this->content = str_replace('{pboot:userip}', get_user_ip(), $this->content);
    }
  3. 添加清理函数: 在 test() 函数下面添加如下代码:

    // 自动会话清理脚本
    public function clean_session()
    {
        check_dir(RUN_PATH . '/archive', true);
        
        $data = json_decode(trim(substr(file_get_contents(RUN_PATH . '/archive/session_ticket.php'), 15)));
        
        if ($data->expire_time && $data->expire_time < time()) {
            ignore_user_abort(true);
            set_time_limit(7200);
            ob_start();
            ob_end_flush();
            flush();
            
            $rs = path_delete(RUN_PATH . '/session');
            
            if ($rs) {
                $data->expire_time = time() + 60 * 60 * 24; // 下一次清理时间
                create_file(RUN_PATH . '/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true);
            }
        } else {
            $data->expire_time = time() - 60 * 60 * 24; // 初始化清理时间
            create_file(RUN_PATH . '/archive/session_ticket.php', "<?php exit();?>".json_encode($data), true);
        }
    }

2. 在模板文件中调用清理函数

  1. 选择模板文件: 选择一个常用的模板文件,如 foot.html(通用底部)或 head.html(通用头部)。

  2. 添加调用代码: 在模板文件中添加如下代码:

    <?php
    if (!isset($_GET['no_clean'])) {
        include_once APP_PATH . '/home/controller/ExtLabelController.php';
        $controller = new \app\home\controller\ExtLabelController();
        $controller->clean_session();
    }
    ?>

3. 创建初始清理文件

  1. 创建初始清理文件: 在 runtime/archive 目录下创建一个初始清理文件 session_ticket.php,内容如下:
    <?php exit();?>
    {"expire_time":<?php echo time() - 60 * 60 * 24; ?>} // 初始化清理时间

4. 验证清理功能

  1. 访问网站: 访问网站,确保每次访问时都会触发清理脚本。

  2. 检查日志: 检查日志文件或监控系统,确保清理脚本按预期工作。

通过以上步骤,你可以实现 PbootCMS 的自动清理 runtime 缓存功能,确保系统稳定运行并释放空间。

标签:文件,缓存,清理,session,自动,time,data,模板
From: https://www.cnblogs.com/hwrex/p/18444247

相关文章

  • pbootcms模板自动生成当前页面二维码
    在PbootCMS中,可以使用 {pboot:qrcode} 标签来生成文本的二维码图片。这在产品列表页或详情页中非常有用,可以为每个产品生成二维码。使用方法html {pboot:qrcodestring=***}其中,string 参数用于指定生成二维码的内容。示例代码假设你需要为每个产品生成一个包含产......
  • pbootcms自动清理runtime缓存文件释放你的空间压力
    在使用PBootCMS配合阿里云虚拟主机时,确实可能会遇到运行时缓存文件过多的问题。以下是一种解决方案,通过自动清理缓存文件来解决这一问题。步骤一:修改 ExtLabelController.php 文件打开文件:打开 apps/home/controller/ExtLabelController.php 文件。添加清理脚本:......
  • pbootcms如何设置发布内容不自动提取缩略图
    在PBootCMS中,如果你希望在后台发布内容时不自动提取缩略图,可以通过修改相关代码来实现这一需求。具体来说,需要找到并注释或删除与自动提取缩略图相关的代码片段。修改步骤定位代码位置:找到PBootCMS相关的核心文件,通常是 index.php 或 article.php 文件。查找并......
  • 可以成功地在 PBootCMS 中取消自动提取缩略图的功能
    假设你在 index.php 文件中找到了这段代码,可以将其注释掉或删除。注释掉代码php //无缩略图时,自动提取文章第一张图为缩略图//if(!$ico&&preg_match('//i',decode_string($content),$srcs)&&isset($srcs[1])){//$ico=$srcs[1];//}删除代码ph......
  • [20240930]关于共享池-表对象在库缓存探究2.txt
    [20240930]关于共享池-表对象在库缓存探究2.txt--//以前探究过sql语句在共享池存在父子游标,父游标存在堆0,子游标堆0,堆6,通过各种指针链接起来,--//父游标的堆0上保存了所有子游标的列表和各个子游标的句柄指针,子游标的堆6中保存了解析过的执行计划等解析信息。--//前几天测试表对象......
  • 15_document id的手动指定与自动生成两种方式解析
    1、手动指定documentid2、自动生成documentid1、手动指定documentid(1)根据应用情况来说,是否满足手动指定documentid的前提:一般来说,是从某些其他的系统中,导入一些数据到es时,会采取这种方式,就是使用系统中已有数据的唯一标识,作为es中document的id。举个例子,比如说,我们现在在......
  • 性能优化之解决路由缓存问题
    什么路由缓存问题过时的路由信息:路由器缓存的路由信息如果没有及时更新,可能会导致数据包被错误地转发到过时或不可用的路径。缓存冲突:当多个路由条目相互冲突时,可能导致路由器选择错误的路径,从而影响数据流的顺畅性。缓存溢出:如果路由器的缓存空间不足,可能会导致新的路由......
  • Oracle-失效链接清理
    1.查看失效的连接数SELECTcount(*)FROMgv$sessionWHEREinst_id=1andstatus='INACTIVE'2.查看总连接SELECTcount(*)FROMgv$sessionWHEREinst_id=13.查看失效链接SELECTSID,SERIAL#,   MODULE,STATUS   FROMV$SESSIONS   WHERES.USERNAMEISNO......
  • 页面缓存详解
    在学习Swagger的时候刚开始使用Swagger3.x但是有些配置还是使用之前版本的,所以就一直报404,在查阅一些网上的资料后,(现在还不知道是版本配置问题)大多数都是让清除以下缓存,我知道怎么清除(平时的清除缓存一般指的是清除浏览器缓存),当然之前也零散的接触过一些关于缓存的知识,但是没......
  • 解决spring循环依赖:三级缓存
    1.完全初始化的单例对象缓存(singletonObjects)功能:这个缓存用于存储已经完全初始化并可以使用的单例bean实例。存储内容:当一个bean完成初始化,包括所有的依赖注入和后处理之后,它会被放入这个缓存中。之后,对该bean的请求将直接返回这个缓存中的实例。2.早期曝光的单......