介绍
在ABP之AOP初显威中介绍了AOP的基本用法,但是在上篇文章中,是使用了异常信息来触发错误的job运行情况,如何在 job运行期间进行job运行情况的收集呢?
实现代码
现有代码是基于上篇文章代码进行修改
定义上下文
上下文中包含两个属性:job是否成功和job消息

定义基类

定义DemoJob
该类继承自AopBackgroundJob{T}
,并实现ExecuteJob

修改BackgroundJobExecuteInterceptorRegister
修改注册方式,所有继承自AopBackgroundJob{T}的类都会触发AOP

修改 BackgroundJobExecuteInterceptor
- 这个AOP方法,只拦截
ExecuteJob
方法,其他方法不拦截
image.png
运行结果

总结
通过定义基类实现job的方法,在job方法中生成上下文实例并传递给子类实现的方法中,这样子类job就可以修改上下文数据,用这种方式来获取job运行情况数据的搜集。
通过ABP之AOP的文章,初步掌握了BackgroundJob的方法,以及AOP的使用方式。
在ABP框架中,大量使用了AOP了,比如UnitOfWork、审计日志、权限等,在实际使用过程中,也给我提供了一个新的思路,要扩展ABP的功能,除了使用继承外,也可以通过使用AOP改变框架的行为。

网友评论