gpt4 book ai didi

java - 如何在 Spring Integration DSL 中将对象放入 Gemfire 缓存?

转载 作者:行者123 更新时间:2023-11-30 06:03:09 25 4
gpt4 key购买 nike

我有集成流程,我想在步骤之间将流程中的实体写入我的 Gemfire 缓存,但我不知道如何执行。

@Bean
public IntegrationFlow myFlow(CacheEntityDAL cacheDAL,Transformer t,
MyFilter f) {
return IntegrationFlows.from("inChannel")
.transform(t) //returns the entity
//I want to put to my cacheDAL.put(entity) here
.filter(f)
.channel("outChannel")
.get();
}

谢谢

最佳答案

要写入 Gemfire 缓存,您需要使用 Spring Integration Gemfire 中的 CacheWritingMessageHandler支持。

但是,由于这是单向,它仅用于写入,因此没有直接的方法将其插入到流程的中间。另一方面,您只想使用相同的有效负载存储并继续下游。为此,我建议使用具有两个订阅者的 PublishSubscribeChannel:提到的 CacheWritingMessageHandler 以及流程的其余部分。像这样的事情:

 return IntegrationFlows.from("inChannel")
.transform(t) //returns the entity
.publishSubscribeChannel(c -> c
.subscribe(sf -> sf
.handle(new CacheWritingMessageHandler(gemfireRegion()))
.filter(f)
.channel("outChannel")
.get();

因此,您可以通过这种方式发送到 Gemfire 并移至主流程,其中下一个 filter() 将作为第二个订阅者,在 Gemfire 的第一个订阅者成功之前,该订阅者不会工作。

关于java - 如何在 Spring Integration DSL 中将对象放入 Gemfire 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51875915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com