public static class DataTableCaches
{
#region 属性方法过时记录器 2012-01-10 李云
/// <summary>
/// 给静态属性设置一个过期时间——用于数据库表缓存
/// </summary>
private static DateTime dTableTimer;
/// <summary>
/// 给静态属性设置一个过期时间——用于数据库表缓存
/// </summary>
public static DateTime DTableTimer
{
get { return dTableTimer; }
set { dTableTimer = value; }
}
public static int hour = 0;//web.config时间配置转换
#endregion
#region 表数据缓存
public static void SetUzaiDataTabaleCache(string key, object value)
{
if (HttpRuntime.Cache[key] == null || DateTime.Now > DTableTimer)
{
if (!string.IsNullOrEmpty(ConfigurationManager.AppSettings["static_cache"]) && int.TryParse(ConfigurationManager.AppSettings["static_cache"], out hour))//是否链接外数据库Static
DTableTimer = DateTime.Now.AddHours(hour);//给静态属性设置一个过期时间
else
DTableTimer = DateTime.Now.AddHours(2);
HttpRuntime.Cache.Insert(key, value, null, dTableTimer, TimeSpan.Zero, CacheItemPriority.Low, null);
}
}
/// <summary>
/// 表数据缓存
/// </summary>
public static void SetUzaiDataTabaleCache(string key, object value, int hours)
{
if (HttpRuntime.Cache[key] == null || DateTime.Now > DTableTimer)
{
DTableTimer = DateTime.Now.AddHours(hours);
HttpRuntime.Cache.Insert(key, value, null, dTableTimer, TimeSpan.Zero, CacheItemPriority.Low, null);
}
}
#endregion
}
List<TravelProductInfo> listTravelProductInfo = new List<TravelProductInfo>();
string cacheName = "TravelProductInfoSelect";
if (HttpRuntime.Cache[cacheName] == null)//没有缓存 即时查询
{
List<TravelProductInfo> list = m_ProductDAL.TravelProductInfoSelect();
if (list != null && list.Count > 0)
{
foreach (TravelProductInfo model in list)
{
listTravelProductInfo.Add(new TravelProductDAL().TravelProductDetatilSelect_B5M(model));
}
DataTableCaches.SetUzaiDataTabaleCache(cacheName, listTravelProductInfo, 4);//产品每4小时更新一次
}
}
else
{
listTravelProductInfo = HttpRuntime.Cache[cacheName] as List<TravelProductInfo>;
}