ABP 如何创建 BackgroundWorker (后台作业)
1.创建 xxxWorker 作业类,并继承 Abp.Threading.BackgroundWorkers.PeriodicBackgroundWorkerBase 基类,与 Abp.Dependency.ISingletonDependency 接口
2.申明构造函数。注意:下面的的 Timer 是父类中的,不是构造函数上的 timer 参数。
public xxxWorker(AbpTimer timer) : base(timer)
{
Timer.Period = 600000;//10分钟一次轮询
}
3.重写父类的 DoWork 方法。在方法体中实现作业具体逻辑。
protected override void DoWork()
{
//在这里实现具体逻辑
}
4.启动任务。理论上可以在任何地方启动,也可以参照官方文档在 public override void PostInitialize() 中处理。
var workManager = IocManager.Resolve<IBackgroundWorkerManager>();
workManager.Add(IocManager.Resolve<xxxWorker>());
workManager.Start();