26. 定时任务/后台任务
4.8.0+ 版本说明
版本说明
以下内容仅限 Furion 2.0.0 +
版本使用。
IIS 部署说明
由于 IIS 有回收的机制,所以定时任务应该采用独立部署,不然经常出现不能触发的情况。查看【Worker Service 章节】
26.1 关于定时任务
顾名思义,定时任务就是在特定的时间或符合某种时间规律执行的任务。通常定时任务有四种时间调度方式:
缓隔时间
方式:延迟多少时间后调配任务,这种方式任务只会被调用一次。间隔时间
方式:每隔一段固定时间调配任务,无间断调用任务。Cron 表达式
方法:通过Cron
表达式计算下一次执行时间进行调配任务,可以配置特定时间范围内执行,也可以无间断执行。自定义下次执行时间
:可以通过各种逻辑运算返回下一次执行时间
26.2 如何实现
Furion
框架提供了两种方式实现定时任务:
SpareTime
静态类:SpareTime
静态类提供SpareTime.Do([options])
方式调用。ISpareTimeWorker
依赖方式:通过自定义类实现ISpareTimeWorker
接口并编写一定规则的方法即可。需要在Startup.cs
中注册services.AddTaskScheduler()