从两个单独的传入请求中注入数据

时间:2014-09-20 21:56:43

标签: java multithreading listener inject

我有一个Java应用程序,它有一个传入的 HTTP GET请求(REST API的一部分)。当服务器收到此请求时,它必须保持连接打开,并执行一些外部服务。这些外部服务的结果是,几秒钟之后完全独立的 传入HTTP POST 请求将带来一些数据。

此时我需要将第二个传入HTTP POST 中的数据注入第一个传入HTTP GET请求的响应中。

我可以为原始传入HTTP GET请求分配ID,并将该ID作为第二个传入HTTP POST 中的存在。所以我确实有办法在两个请求之间创建一个“绑定”。我的问题是如何使用此绑定ID标记原始传入HTTP GET请求的实例/线程,然后将第二个传入HTTP POST 中的数据注入它?

我怀疑它会落后于观察者/听众,但我不确定如何标记和识别实例以确保注入正确的数据。

1 个答案:

答案 0 :(得分:1)

你可以编写一个并发的单例类,一个接一个地处理这两个请求,并通过它们的ID识别各自的请求对 - 然后你也可以实现一个超时机制来存储第一个请求的传入时间,并在给定的一段时间之后时间丢弃第一个不成为僵尸线程的请求等。