首页 > 代码库 > 在ASP.NET应用中执行后台任务
在ASP.NET应用中执行后台任务
为什么要在ASP.NET应用中执行后台任务?
主要是考虑使用后台任务来处理CPU或IO密集的计算。
下面是一些常见的后台任务:
- 大量的提醒和新闻邮件发送
- 图片和视频处理(比如批量创建缩略图、格式转换)
- 从外部文件导入大量数据或导出数据(RSS聚合)
- 文件操作(创建归档、清理临时文件、日志文件维护)
- 定时生成自动化报告
- 数据库维护
- ……
ASP.NET不知道任何后台线程比如一个计时器或者其他,它只知道和request相关的操作。事实上,在后台长时间的运行某些任务实在不是web server该做的事情,通常都可以用其他的方式来避免这样做,比如:用console application和Windows任务管理器,或者使用Windows服务等。
但是有时考虑到 不想单独部署服务器:开发、部署简单,伸缩简单,省钱,确实想在ASP.NET应用中执行后台任务,还是有一些办法的:
办法1、HostingEnvironment.QueueBackgroundWorkItem
让你调度小型的后台任务,ASP.NET的运行时会跟踪这些任务,并阻止IIS突然结束工作进程直到其完成。由此让ASP.NET应用程序能够可靠地调度异步任务。
不过需要把项目配置为使用.NET 4.5.2
办法2、Hangfire
HangFire是一个开源的类库,提供简单的方法在ASP.NET中执行后台Long-Running任务。这个类库需要一些额外的存储上的支持,SQLServer,Redis或者MSMQ。HangFire的资料在http://hangfire.io/
在ASP.NET应用中执行后台任务
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。