1.创建 xxxWorker 作业类,并继承 Abp.Threading.BackgroundWorkers.PeriodicBackgroundWorkerBase 基类,与 Abp.Dependency.ISingletonDependency 接口
2.申明构造函数。注意:下面的的 Timer 是父类中的,不是构造函数上的 timer 参数。
3.重写父类的 DoWork 方法。在方法体中实现作业具体逻辑。
public class BatchCheckWork: PeriodicBackgroundWorkerBase, ISingletonDependency
{
public BatchCheckWork(AbpTimer timer) : base(timer)
{
Timer.Period = 7000;//7秒一次轮询
}
protected override void DoWork()//重写父类的 DoWork
{
BatchCheck();//运行的函数
}
public void BatchCheck() {
using (IDbConnection conn = DapperHelper.CreateLocalConnection())
{
//业务逻辑
}
}
}
4.启动任务。(此处我在host展示层直接使用所以在Startup的WebHostModule中启用任务)
添加以下函数(启动项目后即可自动执行任务)
public override void PostInitialize()
{
var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
workManager.Add(IocManager.Resolve<BatchCheckWork>());
//workManager.Start();
}