rabbitmq 如何在java中处理webhook请求的服务器停机时间

qf9go6mv  于 2022-12-13  发布在  RabbitMQ
关注(0)|答案(1)|浏览(158)

我的应用程序(A)通过rest API从另一个java应用程序(B)获取文件处理详细信息。应用程序B发送包含实时处理详细信息的状态(正在处理、已生成、已传输)。应用程序读取此信息并将其显示给用户。当状态为“已传输”时,应用程序A执行某项任务。
应用程序A完全依赖于应用程序B来执行未来任务。
两个应用程序之间的通信是单向的。应用程序B -〉应用程序A。到目前为止,应用程序B执行一些脚本进行文件处理,并通过rest-api发送详细信息。应用程序B不会在任何地方存储此信息。
寻找在应用A停机期间处理来自应用B的请求的最佳实践。
我发现消息队列是这个用例的最佳解决方案。不幸的是,我们不能有任何新的消息队列基础结构。
有没有其他的解决方案,我们可以实现在java中没有任何基础架构的变化。我感谢您的时间通过这个查询。谢谢

8nuwlpux

8nuwlpux1#

假设App B中存在一个DB,您可以模拟排队行为。
这里有一个简单的实现想法,假设在App B中有一个如下所示的表,用来跟踪对App A的所有调用。
| 任务标识|呼叫状态|上次重试时间|
| - -|- -|- -|
| 001年|未调用|零值|
| 002年|在制品|2022年12月10日上午10时00分01秒|
| 003年|完成|2022年12月10日上午10时00分01秒|
您可以有一个线程,它将处理所有不具有COMPLETE状态的任务并重试。一旦调用成功,该线程将在DB中标记它们。您可能希望在延迟之间引入一些延迟。
注意:您可能需要构建更多的花里胡哨的东西来使它健壮。
希望这能给予你一些启发。

相关问题