返回总目录 本篇目录 介绍 后台工作 后台工作者 让你的应用程序一直运行 介绍 ABP提供了后台工作和后台工作者,它们会在应用程序的后台线程中执行一些任务. 后台工作 后台工作以队列和持续的方式在后台给一些即将被执行的任务排队.你可能因为某些原因需要后台工作,比如: 执行长时间运行的任务.比如,一个用户按了"report"按钮来启动一个长时间运行的报告工作,点击了这个按钮你不可能让用户一直处于等待状态,所以你应该将这个工作(job)添加到 队列(queue)中,然后,当这项工作完成时,…
在一个shell中查看管理 任务(前台和后台)/工作jobs 的命令 jobs是在同一个shell环境而言, 才有意义的. 为什么有jobs这个命令? 是因为, 如果从cmd line运行gui程序时, shell会收到hup(hang up挂起信号)信号, 这时shell会被阻塞,那么 后面的命令就无法继续输入. 所以, 要使用同一个shell运行多个gui程序时, 要将某些命令放到后台去执行.这就是jobs管理任务的来由: cockpit: n. 驾驶舱; 战场. The Middle Ea…
前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日期竟是现在,2个半月了,哎,也是酝酿够久的了! 期间,很多园友一直在催我更新,都是在期待我的这个ABP高级系列,在这里,抱歉地说一声,让你们久等了,本人因为种种事情耽误了很长时间,所以从今天起,正式开始更新ABP理论高级系列教程. 在学习这个高级系列之前,希望你已经学习了ABP理论基础篇,以及最好已…
返回总目录 Hangfire是一个综合的后台工作管理者.你可以将Hangfire集成到ABP中,这样就可以不使用默认的后台工作管理者了.但你仍然可以为Hangfire使用相同的后台工作API.这样,你的代码就独立于Hangfire了,但是,如果你喜欢的话,也可以直接使用 Hangfire的API. 首先,将Abp.HangFirenuget包安装到你的项目中,然后你可以为Hangfire安装任何存储.最常用的一个存储室SQL Server存储(查看 Hangfire.SqlServer nuge…
返回总目录 所有的官方ABP nuget包都是支持GitLink的,这意味着你可以在项目中轻松地调试所有的以Abp为前缀的Nuget包. 要开启这项支持,"启用源服务器支持"选项应该勾选,"启用仅我的代码"选项应该取消勾选,中文截图如下: 英文版截图如下: 如上设置之后,就可以通过F11步入到ABP的源代码了,快去试试吧. ABP的所有nuget包也都发布到了symbolsource.org(我刚才打开时报错了),但是使用GitLink的方式是远远更加有效的,也是更…
一.总体与公共结构 1,ABP配置 2,多租户 3,ABP Session 4,缓存 5,日志 6,设置管理 7,Timing 8,ABPMapper 9,发送电子邮件 二.领域层 10,实体 11,值对象 12,仓储 13,领域服务 14,规格模式 15,工作单元 16,事件总线 17,数据过滤器 三.应用层 18,应用服务 19,数据传输对象 20,验证数据传输对象 21,授权 22,功能管理 23,审计日志 四.分布式服务层 24,ASP.NET Web API Controllers 2…
业务型网站使用过程中,消息通知是一个不可或缺的功能,采用站内通知.短信通知.邮件通知.微信通知等等各种方式都有,ABP框架对这部分工作已经封装的很好了,站在巨人的肩膀上,一览全貌,带来的就是心情舒畅. ABP官网地址:https://aspnetboilerplate.com/ 一.明确概念 一次完整的消息发送/接收过程中,会存在几个必要的点,也正如同现实生活中的场景,有人发送,有人接收,发送的消息本身也有类型. 1.消息类型定义 在ABP中已经提供了消息类型定义的相关类,但是需要我们去实现,在…
文主要说明ABP中后台工作者模块(BackgroundWorker)的实现方式,和后台工作模块(BackgroundJob).ABP通过BackgroundWorkerManager来管理BackgroundJobManager,然后通过BackgroundJobManager来管理BackgroundJob.BackgroundJob就代表一个真正的后台任务. 这两个模块是在ABPKernelModule的PostInitialize完成初始化的. 后台工作者模块 首先浏览下后台工作者模块所涉…
通用连接和事务管理方法连接和事务管理是使用数据库的应用程序最重要的概念之一.当你开启一个数据库连接,什么时候开始事务,如何释放连接...诸如此类的. 正如大家都知道的,.Net使用连接池(connection pooling).因此,创建一个连接实际上是从连接池中取得一个连接,会这么做是因为创建新连接会有成本.如果没有任何连接存在于连接池中,一个新的连接对象会被创建并且添加到连接池中.当你释放连接,它实际上是将这个连接对象送回到连接池.这并不是实际意义上的释放.这个机制是由.Net所提供的.因此…
HangFire与Quartz.NET相比主要是HangFire的内置提供集成化的控制台,方便后台查看及监控,对于大家来说,比较方便. HangFire是什么 Hangfire是一个开源框架(.NET任务调度框架),可以帮助您创建,处理和管理您的后台作业,处理你不希望放入请求处理管道的操作: 通知/通讯; xml,csv,json批量导入; 创建档案; 发射web hooks; 删除用户; 建立不同的图表; 图像/视频处理; 清除临时文件; 反复出现的自动报告; 数据库维护 Hangfire支持…