欢迎来到天天文库
浏览记录
ID:41005760
大小:171.50 KB
页数:9页
时间:2019-08-13
《在Web应用程序中执行计划任务》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、窗体顶端Spring每天,都要积极的生活!在Web应用程序中执行计划任务(多线程)在业务复杂的应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件等,我们称之为计划任务。实现计划任务的方法也有很多,可以采用SQLAgent执行存储过程来实现,也可以采用Windows任务调度程序来实现,也可以使用Windows服务来完成我们的计划任务,这些方法都是很好的解决方案。但是,对于Web应用程序来说,这些方法实现起来并不是很简单的,主机服务提供商或者不能直接提供这样的服务,或者需要你支付许多额外的费用。
2、本文就介绍一个直接在Web应用程序中使用的简单的方法,这个方法不需要任何额外的配置即可轻松实现。由于ASP.NET站点是作为Web应用程序运行的,它并不受线程的限制,因此我们可以非常方便地在Application_Start和Application_End事件中建立和销毁一个计划任务。下面就简单介绍一下在Web站点实现计划任务的方法。我们的例子是定时往文件里添加信息,作为例子,这里把当前的时间定时地写入文件中。一个计划任务的工作单元称之为一个任务(Job),下面的代码描述了对所有任务都可以被调度引擎计划执行的一个通用的接口,这里的每个任务实现了Execute方法,
3、供调度引擎进行调用: publicinterfaceISchedulerJob { voidExecute(); }如前所述,我们的例子是实现往文件写如字符日期,下面就是实现这一任务的方法: publicclassSampleJob:ISchedulerJob { publicvoidExecute() { //文件保存的物理路径,CSTest为虚拟目录名称,F:InetpubwwwrootCSTest为物理路径 stringp=@"F:InetpubwwwrootCSTest";
4、 //我们在虚拟目录的根目录下建立SchedulerJob文件夹,并设置权限为匿名可修改, //SchedulerJob.txt就是我们所写的文件 stringFILE_NAME=p+"SchedulerJobSchedulerJob.txt"; //取得当前服务器时间,并转换成字符串 stringc=System.DateTime.Now.ToString("yyyy-mm-ddhh:MM:ss"); //标记是否是新建文件的标量 boolflag=false; //如果文件不存在,就新建
5、该文件 if(!File.Exists(FILE_NAME)) { flag=true; StreamWritersr=File.CreateText(FILE_NAME); sr.Close(); } //向文件写入内容 StreamWriterx=newStreamWriter(FILE_NAME,true,System.Text.Encoding.Default); if(flag)x.Write("计划任务测试开始:"); x.Write(""+c);
6、 x.Close(); } }接下来,我们建立一个配置对象,告诉调度引擎执行什么任务和执行的时间间隔。 publicclassSchedulerConfiguration { //时间间隔 privateintsleepInterval; //任务列表 privateArrayListjobs=newArrayList(); publicintSleepInterval{get{returnsleepInterval;}} publicArrayListJobs{get{retur
7、njobs;}} //调度配置类的构造函数 publicSchedulerConfiguration(intnewSleepInterval) { sleepInterval=newSleepInterval; } }下面就是调度引擎,定时执行配置对象的任务 publicclassScheduler { privateSchedulerConfigurationconfiguration=null; publicScheduler(SchedulerConfigurationconfig)
8、
此文档下载收益归作者所有