给定ASP.NET应用程序,我需要定期运行维护过程(每天,每小时等).
如果不依赖于服务器上的计划任务等外部流程(假设我无法访问服务器 – 共享托管环境),最好的方法是什么.
解决方法
以下是StackOverflow的工作方式:
private static CacheItemRemovedCallback OnCacheRemove = null; protected void Application_Start(object sender,EventArgs e) { AddTask("DoStuff",60); } private void AddTask(string name,int seconds) { OnCacheRemove = new CacheItemRemovedCallback(CacheItemRemoved); HttpRuntime.Cache.Insert(name,seconds,null,DateTime.Now.AddSeconds(seconds),Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable,OnCacheRemove); } public void CacheItemRemoved(string k,object v,CacheItemRemovedReason r) { // do stuff here if it matches our taskname,like WebRequest // re-add our task so it recurs AddTask(k,Convert.ToInt32(v)); }
细节:http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。