🍜规则热更新
# 热更新规则
在Gobrs-Async中默认规则只会加载一次,可能有朋友可能会有规则动态变化的需求,使用程序动态修改规则配置。而不需要重新启动程序。那么对于这种需求 Gobrs-Async 同样支持。
Gobrs-Async 默认使用CopyOnWrite 机制更新的规则配置,并发度更高。同时维护了线程安全机制。
注入 RuleThermalLoad
对象,调用 load
方法即可完成动态更新流程规则配置。
public class RuleMethodConfigUpdate {
@Autowired(required = false)
private RuleThermalLoad ruleThermalLoad;
/**
* Update com.gobrs.async.rule.
*
* @param rule the com.gobrs.async.rule
*/
@Test
public void updateRule(GobrsAsyncRule rule) {
GobrsAsyncRule r = new GobrsAsyncRule();
r.setName("anyConditionGeneral");
r.setContent("AService->CService->EService->GService; BService->DService->FService->HService;");
ruleThermalLoad.load(rule);
}
}
# 验证
如果日志打印如下提示,说明配置热更新成功
com.gobrs.async.engine.RuleThermalLoad : rule test update success
Last Updated: 1/7/2023, 1:49:29 AM