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中設置)