当前位置: 首页 > news >正文

在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/

 

转载于:https://www.cnblogs.com/lilunjia/p/7080274.html

相关文章:

  • Gamma校正问题
  • Brendan Gregg ----Linux Performance Tools NEWS
  • 打印信息
  • Android中使用手势识别功能
  • hibernate之初学增删改查
  • Android之使用传感器获取相应数据
  • css实现文字两端对齐
  • jQuery高性能自己定义滚动栏美化插件
  • Visual Code中的智能提示
  • 什么是ODBC ?
  • Perfect or Good Enough – 关于测试程度的一些探讨
  • 得到存储过程中最后拼接出来的语句
  • python 同时打开两个文件以及打开文件的基本操作
  • open_basedir restriction in effect,解决php引入文件权限问题
  • Android应用完全退出的几种方法
  • Android 架构优化~MVP 架构改造
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CentOS7 安装JDK
  • javascript 哈希表
  • js
  • LeetCode29.两数相除 JavaScript
  • October CMS - 快速入门 9 Images And Galleries
  • Rancher如何对接Ceph-RBD块存储
  • vue-router 实现分析
  • Web设计流程优化:网页效果图设计新思路
  • 半理解系列--Promise的进化史
  • 从伪并行的 Python 多线程说起
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 小而合理的前端理论:rscss和rsjs
  • 写代码的正确姿势
  • 移动端 h5开发相关内容总结(三)
  • 用Canvas画一棵二叉树
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • ​io --- 处理流的核心工具​
  • #传输# #传输数据判断#
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (2015)JS ES6 必知的十个 特性
  • (强烈推荐)移动端音视频从零到上手(下)
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)使用VMware vSphere标准交换机设置网络连接
  • ***测试-HTTP方法
  • .NET DataGridView数据绑定说明
  • .Net Web窗口页属性
  • .net 后台导出excel ,word
  • .NET 命令行参数包含应用程序路径吗?
  • .NET/C# 避免调试器不小心提前计算本应延迟计算的值
  • .NetCore项目nginx发布
  • .Net环境下的缓存技术介绍
  • /proc/interrupts 和 /proc/stat 查看中断的情况
  • /proc/vmstat 详解
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • @property python知乎_Python3基础之:property
  • @ResponseBody