后台任务介绍
后台任务分为2大类:
- 周期性后台任务
- 临时性后台任务
本文主要介绍 周期性后台任务
周期性后台任务
很多时候我们需要执行一些周期性任务,它们有如下特性:
- 后台执行:由后台线程执行
- 周期规律性:每x分钟 或者 每x秒 就执行一次
- 长时间运行:任务的生命周期和进程相同
对于此类场景,我们可以使用 BackgroundTask 来实现。
周期性后台任务有2种执行方式:
- 同步方式:需要从 BackgroundTask 基类继承
- 异步方式:需要从 AsyncBackgroundTask 基类继承
2个类的用法完全一致,下文将以同步方法来介绍用法。
BackgroundTask与Hangfire的主要差别
技术特性 | BackgroundTask | Hangfire |
---|---|---|
依赖ASP.NET | 否 | 是 |
依赖数据库持久化 | 否 | 是 |
同一任务重叠执行 | 否 | 是 |
支持异步任务 | 是 | 否 |
支持秒级触发 | 是 | 否 |
支持性能日志 | 是 | 否 |
支持Venus监控 | 是 | 否 |
支持立即执行 | 是 | 延迟 |
支持临时任务 | 否 | 是 |
查看后台任务
可以从Venus中查看某个应用进程的后台作业执行情况,可参考下图: