c#依赖文件缓存

        public  void RemovedCallbackRole(string key, object value, CacheItemRemovedReason reason)
        {
            // 在应用程序启动时运行的代码
            BLL.JUESE bll = new BLL.JUESE();
            //显示当前时间,以便判断是否为缓存中页面
            //缓存依赖于文件TextFile.txt
            //string fileDependencyPath = "F:\\View\\code\\cm1test\\Web\\TextFile.txt";
            // 设置缓存的过期时间为120秒。
            DataTable dt = new DataTable();
            dt = bll.GetList(" isdel=‘0‘ ");
            CacheItemRemovedCallback onRemove = new CacheItemRemovedCallback(RemovedCallbackRole);
            //rolefile 文件物理地址
            objCache.Insert("role", dt, new CacheDependency(rolefile), Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);

        }

在应用程序的Global文件中声明  Cache objCache = null;

  void Application_Start(object sender, EventArgs e)
    {
            // 在应用程序启动时运行的代码
            objCache = HttpRuntime.Cache;
            RemovedCallbackRole(null, null, 0);

    }

    void Application_End(object sender, EventArgs e)
        {
            //  在应用程序关闭时运行的代码
            HttpRuntime.Cache.Remove("role");
        }

在ORacle数据库中创建触发器,当角色表变动的时候更新依赖的文件内容

创建一个directory:

create or replace directory FILEPATH as ‘依赖文件的路径‘;
grant read,write on directory FILEPATH to 数据库用户;

例如:
create or replace directory FILENAME as ‘C:\cc‘;

grant read, write on directory FILENAME to FLZD

创建触发器:

CREATE OR REPLACE TRIGGER "TEST_ROLE" AFTER
INSERT
OR UPDATE
OR DELETE OF "NAME","ROLETYPE" ON "USER"."ROLE"
DECLARE
filehandle utl_file.file_type;
BEGIN
--第三个参数为打开模式,包括‘r‘, ‘w‘, ‘a‘ ‘rb‘, ‘wb‘, ‘ab‘六种
--‘r‘:读文件,一定要保证有该文件,不然会报UTL_FILE.INVALID_PATH异常
--‘w‘:写文件,没有该文件的话会自动添加;有的话会覆盖
--‘a‘:追加文件,一定要保证有该文件,在已有文件内容后追加内容
--带有‘b‘后缀的为使用byte模式,BLOB与VARCHAR2不一样,BLOB打开时一定要用带有‘b‘后缀的模式
filehandle := utl_file.fopen(‘FILENAME‘,‘HELLO.txt‘,‘w‘); --打开文件
utl_file.put_line(filehandle,‘Hello Oracle!‘);--写入一行记录
utl_file.put_line(filehandle,to_char(SYSDATE,‘yyyy-mm-dd hh24:mi:ss‘));
utl_file.fclose(filehandle);--关闭句柄
END;

 

 

时间: 2024-12-10 20:57:01

c#依赖文件缓存的相关文章

Asp.net文件缓存依赖

Asp.net文件缓存依赖 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Default4 : System.Web.UI.Page { /// <summary> /// 获取当前应用程序指定CacheKey的Cache对

PHP文件缓存实现

有些时候,我们不希望使用redis等第三方缓存,使得系统依赖于其他服务.这时候,文件缓存会是一个不错的选择. 我们需要文件缓存实现哪些功能: 功能实现:get.set.has.increment.decrement.delete.flush 能够在较短的时间内返回数据 支持key过期 为了避免一个文件内的数据过大,造成读取文件的时候延迟较高,我们采用一个key-value一个文件的方式实现存储结构. 为了支持key过期,我们需要把expire数据写入到文件中,所以需要对写入的数据进行序列化处理

文件缓存的场景

1.缓存一些不经常改的数据,如页面显示什么导航,侧边栏按什么分类 2.文件缓存系统设置:如缓存公司用哪个邮箱向用户发邮件:

PHP缓存之文件缓存

1.PHP文件缓存内容保存格式        PHP文件缓存内容保存格式主要有三种: (1)变量 var_export 格式化成PHP正常的赋值书写格式: (2)变量 serialize 序列化之后保存,用的时候反序列化: (3)变量 json_encode格式化之后保存,用的时候json_decode 互联网上测试结果是:serialize格式的文件解析效率大于Json,Json的解析效率大于PHP正常赋值. 所以我们要是缓存数据建议采用序列化的形式解析数据会更快. 2.PHP文件缓存的简单案

静态文件和文件缓存

静态文件和文件缓存 1.在应用配置 settings 中指定 static_path 选项来提供静态文件服务:   2.在应用配置 settings 中指定 static_url_prefix 选项来提供静态文件前缀服务: 3.在导入静态文件时用 {{static_url('XX.css')}} 方式实现主动缓存静态文件 Tornado中, 你可以通过在应用程序中指定特殊的 static_path 来提供静态文 件服务: settings = { "static_path": os.p

nginx静态文件缓存

open_file_cache max=65535 inactive=30s; open_file_cache 打开缓存的同时也指定了缓存最大数目,以及缓存的时间 open_file_cache_valid 60s; 在open_file_cache中指定检测正确信息的间隔时间 open_file_cache_min_uses 1; 在 inactive指定时间中没有使用到这个配置的次数的话就删除 最大缓存65535个文件,每个文件缓存30秒,每60秒检测一次,如果有更改或者如果没有用到1次,就

缓存处理类(MemoryCache结合文件缓存)

想提升站点的性能,于是增加了缓存,但是站点不会太大,于是不会到分布式memcached的缓存和redis这个nosql库,于是自己封装了.NET内置的缓存组件 原先使用System.Web.Caching.Cache,但是asp.net会在System.Web.Caching.Cache缓存页面等数据,于是替换了System.Web.Caching.Cache为MemoryCache. 而在使用MemoryCache的时候,重新启动网站会丢失缓存,于是加了自己的扩展,将缓存序列化存放在文件内,在

iOS 之 文件缓存

对于信息量不是太大的数据,可以使用文件缓存来处理.文件缓存可以缓存字典和数组. 步骤一:创建路径 路径要一级一级往下创建,基本不用考虑创建失败的情况.但是如果创建失败了要怎么做呢?按道理应该提示出来.结束往下的操作,因为没有办法继续创建下面的目录. 创建路径要放到~Document下面,在真机上才能运行. 创建路径只是目录,文件名称还要在读写时附加上. 步骤二:读写

PHP程序缓存之文件缓存处理方式

PHP程序缓存之文件缓存处理方式在开发程序过程中,缓存的设置大大提升程序效率,减小数据库负载.基本配置缓存和常规配置缓存 基本配置缓存在项目开发中类似这样子的格式: 文件:config.php $CFG['database'] = 'mysql'; $CFG['pconnect'] = '0'; $CFG['db_host'] = 'localhost'; $CFG['db_name'] = 'appcom'; $CFG['db_user'] = 'root'; $CFG['db_pass']