spring - 内存中的spring boot activemq
问题描述
我使用本指南制作了一个简单的 Spring 启动内存中 ActiveMQ 服务,该服务从休息控制器获取消息,然后将其传递给侦听器。然后侦听器进行一些大约需要 40 秒的处理,但我无法在处理完结果后检索结果。
https://github.com/TechPrimers/inmemory-spring-boot-activemq-example
到目前为止,一切都按预期工作,但我希望能够检索侦听器已处理的结果。
我正在考虑这样做的一种方法是创建另一个休息控制器,该控制器返回侦听器完成的任务的结果。并通过使用关系数据库来管理 ID 和消息。
但是,我宁愿使用内存中的所有内容,而不是处理数据库。
ActiveMQ 和/或 spring 是否有内置的东西来管理它?
解决方案
您所描述的内容在我看来就像是企业集成场景中常见的请求-回复模式。
假设工作的结果将很快被消耗,那么我建议您只需将结果放入另一条消息并将该消息发送到“回复”队列。原始消息可以包括一个“相关 ID”,侦听器也可以在回复消息中使用它,因此可以将结果与请求相关联。
如果结果不会很快被消耗,那么数据库可能会更好,因为消息代理不像数据库那样设计为数据存储库。此外,如果你走那条路,可能会有内存中的嵌入式数据库对你有用。
推荐阅读
- c# - 使用 WebView2 - Edge 创建选项卡
- python-3.x - 有什么方法可以通过 boto3 的 AWS CLI 确定特定实例类型 - 操作系统组合在 AWS 区域/AZ 中是否可用?
- javascript - jQuery:添加“下载”属性时从href链接中提取文件名
- docker - 在 Dockerfile 中使用环境变量值回显多行 json 文件
- hybris - 尝试构建平台时出现 UnsupportedClassVersionError
- arrays - 实例方法“包含”要求“UITextField”符合“StringProtocol”
- docker - 我怎样才能使刻度显示为绿色?
- c# - 带有 JSON 文件的 C# 类
- r - 从数据框创建一个矩阵,并根据行数填充它
- vscode-settings - VS 代码编辑器不像响应式网站那样响应。0