问题一:如何使用工厂模式来管理不同的子任务执行器?
如何使用工厂模式来管理不同的子任务执行器?
参考回答:
在流程引擎重构中,通过工厂模式(ExecutorFactory)来管理不同的子任务执行器。每一个子任务执行器都抽取为一个单独的类,通过操作类型以及阶段从工厂类获取对应的执行器并执行相应的方法。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654329
问题二:如何规范执行器的异常处理?
如何规范执行器的异常处理?
参考回答:
在流程引擎的execSubTask以及handleSubTaskSyncResult两个方法中,进行异常统一处理。规范执行器异常处理的方式是在异常信息中携带第三方或己方处理结果,并格式化后填充到异常信息中。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654330
问题三:如何在上层调用者中处理子任务执行器抛出的异常?
如何在上层调用者中处理子任务执行器抛出的异常?
参考回答:
在上层调用者中,不需要关注执行器中发生了什么,只需要将执行器抛出的异常信息构建成统一的模板,并通过异常的形式透出给上层调用者。上层调用者将异常信息落库即可。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654331
问题四:在优化过程中,是如何进行单元测试的?
在优化过程中,是如何进行单元测试的?
参考回答:
在优化过程中,以流程引擎为入口,以HTTPClient与mapper为最大mock对象,实现全链路测试,从而补齐单元测试。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654332
问题五:重构后流程引擎有哪些显著的改进?
重构后流程引擎有哪些显著的改进?
参考回答:
重构后,流程引擎极大地简化了任务执行流程,去除了对metaQ的强依赖,依赖定时任务触发,并实现了异常兜底逻辑。同时,实现了单测全覆盖,并将流程引擎核心流程收敛至Domain中。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/654333