超时机制
全局事务与各子事务均支持超时功能。
开启/关闭方法
通过在注解@Compensable或@AutoCompensable中设置timeout来开启或关闭超时功能。
参数值
默认未设置该参数,即值为0,代表不使用超时功能。
设置大于0的正整数值,代表启用超时功能。
★★★超时检测★★★
后台定时任务检测
在全局事务正常运行过程中,定时任务会每隔0.5s对全局事务进行超时检测。
全局事务结束前检测
部分场景,定时任务执行时间大于全局事务的超时时间,这导致了还未等对全局事务进行超时检测,结果全局事务就已经结束了。为杜绝此现象,增设全局事务结束前检测超时。
超时处理
检测到超时的全局事务后,先后创建超时记录、创建中止事件、创建待补偿命令、下发补偿命令、创建补偿事件、更新超时记录状态、更新待补偿命令、场景全局事务完成事件。
超时场景会对超时的全局事务下的所有子事务都进行补偿,而非超时异常仅针对当前全局事务下的非当前异常的其它子事务进行补偿。
注意事项
超时信息修改后需重启应用才能生效。