HttpRuntime自定义定时更新缓存
缓存更新类如下:
/// <summary>
/// 缓存更新类
/// </summary>
/// <typeparam name="T">缓存对象</typeparam>
public class UpdateCacheHelper<T>
{
/// <summary>
/// 计时器
/// </summary>
private System.Threading.Timer timer; /// <summary>
/// 缓存时间(分钟)
/// </summary>
private int saveTime; /// <summary>
/// 默认(毫秒)
/// </summary>
private int intervalTime = * ; /// <summary>
/// 缓存键
/// </summary>
private string cacheKey = string.Empty; /// <summary>
/// 代理
/// </summary>
private Delegate dele; /// <summary>
/// 代理的入参
/// </summary>
private object[] objs; /// <summary>
/// 更新缓存类
/// </summary>
/// <param name="dele">代理</param>
/// <param name="cacheKey">key</param>
/// <param name="saveTime">缓存时间(分钟)</param>
/// <param name="intervalTime">间隔时间(秒)</param>
/// <param name="objs">入参</param>
public UpdateCacheHelper(Delegate dele, string cacheKey, int saveTime, int intervalTime, params object[] objs)
{
this.dele = dele;
this.cacheKey = cacheKey;
this.saveTime = saveTime;
this.intervalTime = intervalTime * ;
this.objs = objs;
this.timer = new System.Threading.Timer(new System.Threading.TimerCallback(this.CheckDependencyCallBack), this, , this.intervalTime);
} /// <summary>
/// 从数据库获取数据
/// </summary>
/// <returns>数据</returns>
public T GetData()
{
string assemblyName = this.dele.Target.GetType().Assembly.FullName;
string typeName = this.dele.Target.GetType().FullName; object instance = Assembly.Load(assemblyName).CreateInstance(typeName); MethodInfo methodInfo = this.dele.Method; return (T)methodInfo.Invoke(instance, this.objs);
} /// <summary>
/// 回调函数
/// </summary>
/// <param name="sender">sender</param>
private void CheckDependencyCallBack(object sender)
{
T newData = this.GetData();
HttpRuntime.Cache.Insert(this.cacheKey, newData, null, Cache.NoAbsoluteExpiration, new TimeSpan(, this.saveTime, ), CacheItemPriority.NotRemovable, null);
}
}
HttpRuntime自定义定时更新缓存的更多相关文章
- celery介绍、架构、快速使用、包结构,celery执行异步、延迟、定时任务,django中使用celery,定时更新首页轮播图效果实现,数据加入redis缓存的坑及解决
今日内容概要 celery介绍,架构 celery 快速使用 celery包结构 celery执行异步任务 celery执行延迟任务 celery执行定时任务 django中使用celery 定时更新 ...
- Java专业技能面试问题(不定时更新)
刚看到园友五月的仓颉<面试感悟----一名3年工作经验的程序员应该具备的技能>感觉很不错,不论是为面试跳槽准备,还是打算深化精进自己的技术都可以参考一下.面向工资编程多少也有点道理,虽然技 ...
- Dcloud课程6 php脚本如何在Linux下定时更新数据
Dcloud课程6 php脚本如何在Linux下定时更新数据 一.总结 一句话总结:linux下用crontab命令实现定时任务. 1.linux下执行php脚本用什么命令? 直接用php命令php ...
- iOS 属性修饰符记录 --不定时更新
重新审视了一下OC在属性修饰符,特意记录一下来.以后不定时更新 > retain:只有在非ARC下才会有效,所有如果在ARC下使用了retain修饰也白搭 如以下的data属性用retain修饰 ...
- linux下svn定时更新项目
方法一.用shell脚本定时更新项目 1.进入网站的根目录,假设项目位置放在/var/www/test cd /var/www/test 2.建立脚本文件update.sh,分两步进行.首先利 ...
- 关于phpcmsv9更新缓存出现链接被重置的问题
今天安装phpcmsv9后更新缓存出现链接被重置的错误,..找了半天原因. . .原来是apache配置里面的keepAlive显示的是off,,应该将其改为on...然后重新启动apache....
- 更新插件时提示“正在更新缓存”“正在等待jockey-backend退出”
Ubuntu 11 更新语言插件, 更新时 提示正在更新缓存”“正在等待jockey-backend退出”,然后就不动了. 解决方案: 在终端中键入ps -e | grep jockey 系统会显示一 ...
- ASP.NET中设置一个定时器来定时更新 转
asp.net 定时器 比较少用, 中国红木网这是一个相当实用的功能,有了RSS博客镜像,就不需要在多处同时发布博客日志了.比如你同时在新浪上有自己的博客,又同时有自己的个人博客站点,那么你只需要在 ...
- Asp.Net 自定义设置Http缓存示例(一)
一.自定义图片输出,启用客户端的图片缓存处理 代码示例: string path = Request.Url.LocalPath; if (path != null) { path = path.To ...
随机推荐
- Golang Printf、Sprintf 、Fprintf 格式化
/* %v 输出结构体 {10 30} %+v 输出结构体显示字段名 {one:10 tow:30} %#v 输出结构体源代码片段 main.Point{one:10, tow:30} %T 输出值的 ...
- mysql基础认识1
一.配置文件 服务端和客户端的字符编码不一样时,可能会导致乱码显示等情况,为了统一两端的字符编码,可以通过配置文件进行实现,当然譬如登录账户等信息也可以进行配置,在启动mysql服务端时会自动读取配置 ...
- I.MX6 网卡能收不能发
/******************************************************************** * I.MX6 网卡能收不能发 * 说明: * MAC控制器 ...
- (七)js函数一
1.函数概念:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. 语法:fuction hello(){ code... } a)手动驱动: eg: hello(); ...
- 关于file.writelines换行符的添加
和file.readlines/readline不同,file.writelines(l)如果l元素没有换行符,writelines是不会自动加入换行符的,需要我们自己添加,就像这样. import ...
- python 的日志logging模块
1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message')logging.info('This is info messag ...
- Oracle GoldenGate理论
1Oracle GoldenGate处理方法和支持的数据库Oracle GoldenGate在多样和异构的基础IT平台中,可以在事务级别上进行数据交换和数据操作.在保证交易完整性和最小的开销的条件下, ...
- DLatch by Verilog
//-----------------------------------------------------// Design Name : dlatch_reset// File Name : ...
- VMware网络模式介绍
VMWare提供了三种工作模式,它们是bridged(桥接模式).NAT(网络地址转换模式)和host-only(主机模式). Bridged 模式: 在桥接模式下,VMware虚拟机里的系统就像是 ...
- Error EBUSY: osd.0 is still up; must be down before removal的解决办法
标签(空格分隔):ceph,ceph运维,osd故障 集群环境: [root@node3 ~]# cat /etc/redhat-release CentOS Linux release 7.3.16 ...