ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的。
HangfireBackgroundJobManager:实现了接口IBackgroundJobManager中的方法EnqueueAsync,通过HangfireBackgroundJob完成Enqueue。重写了BackgroundWorkerBase中的Start和WaitToStop方法。
AbpHangfireConfiguration / IAbpHangfireConfiguration:定义了BackgroundJobServer的配置项。
HangfireIocJobActivator:继承了Hangfire组件里的JobActivator.因为ABP是通过Castle来作为容器管理对象的。所以这里的目的是为了通过castel来完成jobtype的resolve.
AbpHangfireModule:完成常规的依赖注入配置和注入自定义的JobActivator
AbpHangfireConfigurationExtensions:通过UseHangFire方法完成HangfireBackgroundJobManager的注入。
在ABP中配置使用HangFire是很轻松的事。如下设置就可以了(要在PreInitialize中设置)