您可以使用 Active-MQ 进行排队。活动 MQ,Hello World
如果您使用的是MSSQL 服务代理,它已经提供了消息队列。您只需要弄清楚如何在您的情况下正确使用它。
这是到 JMS 桥的 Service Broker的链接。
- 您不需要通过数据库调用任何应用程序。
- C 程序需要 20 分钟来处理每个 HttpRequest。
使用以下步骤:
第1部分:
第2部分:
- p2.1 - 有一个 Java 程序来轮询队列并检查是否有任何消息。
- p2.2 - 如果没有消息,它会休眠一段时间。
- p2.3 - 如果有新消息,只需要一条。
- p2.4 - 消息由 Java 程序传递给 C 程序(参见Process Builder)。
- p2.5 - 等待该过程完成。
- p2.6 - 流程完成后(20 分钟后),转到 p2.1。
此链接可能会间接帮助您。
由于 Azure 不支持服务代理,因此必须有其他方式来实现 part1。
第 1 部分(尽可能执行以下步骤):
步骤 1. 数据库更改时生成请求数据(不是消息,只是数据)。
I want to send modified or new data with request from DB to Java Application
- 我需要知道数据库更改时如何/在何处生成/收集数据。这一步只有这么多。一旦清楚了,我们就会前进。请一步一步走。-
步骤 2. 从生成的数据创建消息。
步骤 3. 阅读消息并将它们发送到队列。
send messages including data to Queue
消息结构:
以下消息指向Application1
.
App1?data="1,2,3,4,5,6,7,8,9,10..."
以下消息指向Application2
.
App2?data="1,2,3,4,5,6,7,8,9,10..."
If it allow to mention our own custom message,then I will create one more table in DB.This table have 2 columns.1 row points to ApplicationName and 2 row points to message Name.It is useful while forwarding time.
第 2 部分(截至目前保持不变):
- p2.1 - 有一个 Java 程序来轮询队列并检查是否有任何消息。
- p2.2 - 如果没有消息,它会休眠一段时间。
- p2.3 - 如果有新消息,只需要一条。
- p2.4 - Java 应用程序导入 XMl 文件并根据消息上下文将 http 请求发送到相应的应用程序,包括数据
- p2.5 - 消息由 Java 程序传递给 C 程序(参见Process Builder)。
- p2.6 - 等待该过程完成。
- p2.7 - 流程完成后(20 分钟后),转到 p2.1。
Xml 结构如下。
<Message>
<Message-Body>
<Message-Context>App1</Message-Context>
<URL>`http://localhost:8080/App1`</URL>
</Message-Body>
<Message-Body>
<Message-Context>App2</Message-Context>
<URL>`http://localhost:8080/App2`</URL>
</Message-Body>
</Message>