当前位置: 首页 > news >正文

企业网站介绍网站开启伪静态需要编写什么代码

企业网站介绍,网站开启伪静态需要编写什么代码,广告联盟哪个比较好,潍坊优化排名推广目录 1.热点管理文件的基本思路 2.热点管理类的设计 3.热点管理类的实现 1.热点管理文件的基本思路 服务器端的热点文件管理是对上传的非热点文件进行压缩存储,节省磁盘空间。 而热点文件的判断在于上传的文件的最后一次访问时间是否在热点判断时间之内。 实…

目录

1.热点管理文件的基本思路 

2.热点管理类的设计

3.热点管理类的实现


 

1.热点管理文件的基本思路 

服务器端的热点文件管理是对上传的非热点文件进行压缩存储,节省磁盘空间。

而热点文件的判断在于上传的文件的最后一次访问时间是否在热点判断时间之内。

实现思路也就是遍历所有文件,检测文件最后一次访问时间,与当前时间进行相减得到差值,这个差值如果大于我们设置好的非热点判断时间,则可以认为是非热点文件,此时需要进行压缩存放到压缩路径中,删除源文件

事实上,我们这里有两种选择:

  1. 从数据管理模块中遍历所有备份文件信息
  2. 遍历备份文件夹,获取所有文件的属性,然后进行判断。

我们选择第2种,每一次都是获取文件的最新数据然后进行判断,并且还可以解决数据信息缺漏的问题,

我们需要对上传的文件每隔一段时间进行热点检测,相当于遍历上传文件的存储文件夹,找出所有的文件,然后通过对逐个文件进行时间差的判断,来逐个进行热点处理。

基于这个思想,我们需要将上传的文件存储位置与压缩后压缩文件的存储位置分开。

这样在遍历上传文件夹的时候不至于将压缩过的文件又进行非热点处理了。

总结之后,我们得出几个关键点与步骤:

  1. 上传文件有自己的上传存储位置,非热点文件的压缩存储有自己的存储位置;
  2. 遍历备份目录,获取所有文件路径名称;
  3. 逐个获取每个文件最后一次访问时间,进而完成是否热点文件的判断;
  4. 对非热点文件进行压缩存储,删除原来的未压缩文件修改数据管理模块对应的信息——压缩标志位设置为true

2.热点管理类的设计

热点管理类中,只要包含两个成员函数:

  • HotJudge:用于判断文件是否为非热点文件;
  • RunModule:主要的运行函数,完成上述热点管理的全部步骤。
class HotManager
{
public:HotManager();bool RunModule(); // 主逻辑函数
private:bool HotJudge(const std::string &filename); // 判断是否为非热点文件
};

3.热点管理类的实现

hot.hpp

#ifndef __MY_HOT__
#define __MY_HOT__
#include <unistd.h>
#include "data.hpp"extern cloud::DataManager* _data; // 全局数据管理类对象
namespace cloud
{class HotManager{public:HotManager(){Config* config = Config::GetInstance(); // 获取配置文件读取类的单例//我们要保证遍历的目录是存在的,不存在就创建一个FileUtil fu1(config->GetBackDir());FileUtil fu2(config->GetPackDir());fu1.CreateDirectory();fu2.CreateDirectory();}bool RunModule(){Config* config = Config::GetInstance(); // 获取配置文件读取类的单例while(1){// 1.遍历备份目录,获取所有文件名FileUtil fu(config->GetBackDir());std::vector<std::string> array;fu.ScanDirectory(&array);//遍历目录,注意目录不存在的情况,首先需要先创建目录,这个构造函数为我们解决了// 2.遍历判断文件是否是非热点文件for(auto &a : array)//a就是每个文件的路径名称{if(HotJudge(a) == false)//是热点文件,不用压缩continue; //是非热点文件,需要进行压缩// 3.获取文件备份信息BackupInfo info;if(_data->GetOneByRealpath(a, &info) == false){// 现在存在一个文件,但是没有备份信息info.NewBackupInfo(a);//设计所有信息}// 4.对非热点文件进行压缩处理  FileUtil tmp(a);tmp.Compress(info.pack_path);// 5.删除源文件,修改备份信息tmp.Remove();info.pack_flag = true;_data->Updata(info);//更新}usleep(1000);//避免空目录循环遍历,消耗CPU功率过高}return true;}private:bool HotJudge(const std::string &filename){Config* config = Config::GetInstance(); // 获取配置文件读取类的单例,获取hottimeFileUtil fu(filename);//获取当前文件的LastAcctimetime_t last_atime = fu.LastAcctime();time_t cur_time = time(NULL);if(cur_time - last_atime > config->GetHotTime())//判断非热点文件的核心{return true;//是非热点文件}return false;//是热点文件}};
}
#endif

cloud.cc

#include "util.hpp"
#include "conf.hpp"
#include "data.hpp"
#include"hot.hpp"cloud::DataManager * _data;
void HotTest()
{_data=new cloud::DataManager();cloud::HotManager hot;hot.RunModule();}
int main(int argc, char *argv[])
{HotTest();return 0;
}

这个时候我们换另外一个机器来看

 

我们发现创建好了backdir和packdir 

我们把bundle.h拷贝到这个backdir里面去,静静等待30秒(我们配置文件里面设置的非热点判断时间)

也是成功了。很好了

我们去cloud.dat里面看到压缩记录了。

 

 


我们git一下

 

http://www.dtcms.com/a/482563.html

相关文章:

  • 玩转Docker Swarm
  • 前沿速递:AAAIICLR最新时间序列与脉冲神经网络研究精选!
  • 【C++】STL简介 + string1
  • 2025年RAS SCI2区,基于事件触发的城市无人机跟踪地面运动目标集成动态任务分配,深度解析+性能实测
  • 哈尔滨高端网站设计烟台消防建设信息网站
  • YouTubeDNN GEO优化+Create大模型:喂养调优训练策略
  • 遵义网站设计浙江网站建设公司推荐
  • 归档及压缩、重定向与管道操作和综合使用,find精确查找、find处理查找结果、vim高级使用、vimdiff多文件使用
  • Vue 开发环境搭建全指南:从工具准备到项目启动
  • 在编译opencv出现的问题
  • 如何安装 NDP48-x86-x64-AllOS-ENU.exe | .NET Framework 4.8 离线安装教程
  • 做网站意向客户如何写一个微信小程序
  • K8s 命令速查表:按场景分类,含实战示例
  • trade ai编辑器使用规范
  • 基于单片机的噪声波形检测与分贝测量仪设计
  • Redis布隆过滤器能设置过期时间吗
  • 衡阳网站定制小企网站建设解决方案
  • java微服务-尚医通-编写医院设置接口下
  • 教做网站的学校做网站公司需要准备资料
  • 《设计模式》
  • 不/可重入函数
  • 前端性能优化?
  • 快应用TypeError: The ‘compilation‘ argument must be an instance of Compilation错误
  • php网站开发实用技术练习题网站源码整站打包
  • vue前端面试题——记录一次面试当中遇到的题(7)
  • 算法9.0
  • 商丘哪里做网站网页加速器怎么开
  • 未来之窗昭和仙君(十九)商用虚拟数字金额键盘——东方仙盟筑基期
  • 每日小知识点:10.14 webpack 有几种文件指纹
  • 怎样撰写企业网站建设方案wordpress主题layui