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 ...
 
随机推荐
- Lua基础---运算符
			
众所周知,C,C++,python等语言都有运算符,那么Lua也不例外,因为它是C写的嘛! Lua分为主要三类运算符,分别是算术运算符,关系运算符,逻辑运算符,还有特殊运算符. 1.算术运算符有: + ...
 - 使用redis计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的
			
使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制. 看实现方式,基于springboot,aop,redis. 新建Springboot工程,引入redis,aop. 创建注解 pac ...
 - F. Coprime Subsequences
			
题目链接: F. Coprime Subsequences time limit per test 2 seconds memory limit per test 256 megabytes inpu ...
 - VS for Mac安装之路
			
首先说四个字:水土不服 作为宇宙最强IDE,从开始编程就一直用的Visual Studio,最近新买了Mac,发现微软发布了VS for Mac,于是打算安装一个试试,怎奈,微软的产品在别家水土不服, ...
 - Android Animation 动画
			
动画类型 Android的animation由四种类型组成 Android动画模式 Animation主要有两种动画模式:一种是tweened animation(渐变动画) XML中 JavaCo ...
 - 后台导入导出Excel
			
Excel导出 定义数据模型 参考财付通的批量提现Excel的格式,定义模型如下 private int recordId; //提现id private String cname; //提现人名称 ...
 - [Luogu3769][CH弱省胡策R2]TATT
			
luogu 题意 其实就是四维偏序. sol 第一维排序,然后就只需要写个\(3D-tree\)了. 据说\(kD-tree\)的单次查询复杂度是\(O(n^{1-\frac{1}{k}})\).所以 ...
 - LeetCode Maximum Swap
			
原题链接在这里:https://leetcode.com/problems/maximum-swap/description/ 题目: Given a non-negative integer, yo ...
 - gatsbyjs 使用
			
1. 安装 npm install --global gatsby-cli 2. 使用 // 创建项目 gatsby new dalong cd dalong // 启动 gatsby develop ...
 - WCF 身份验证 通过检查客户端IP
			
WCF 身份验证 功能描述: 服务运行的时候,通过配置文件获取所有可访问SOA端的服务IP.每次客户调用服务时获取IP对比判定通过. 以下是获取客户端IP的代码: /***************** ...