如何使用泽西服务轮询资源

时间:2013-10-03 06:27:32

标签: java jersey polling

我有一个生成响应的球衣服务。我想要做的是轮询资源(在我的情况下,单例类实例)获取成功值,并且一旦我获得成功值,执行一些操作

@Path("/generate")
class Generation{
    @POST
    @Produces("javax.ws.rs.core.MediaType.TEXT_PLAIN")
    public String generateAndPoll(){
        //Generate response
        /*Polling to start

        */
    return someValue;
    }
}

什么是实现这一目标的好方法?计时器有用吗?

2 个答案:

答案 0 :(得分:2)

从Jersey 2.3.1开始,添加了一项新功能来支持服务器发送的事件。对于您的用例,您可能需要阅读更多Jersey documentation

答案 1 :(得分:0)

如果您不介意使用外部库,我已经使用了几年的氛围,这是一个伟大的服务器推/彗星实现。它几乎支持服务器,是的,它将取决于服务器。它们原生支持长轮询和websockets。几乎整个服务都可以配置几个注释。以下是如何在球衣2服务中使用它的示例。

https://github.com/Atmosphere/atmosphere-samples/blob/master/samples/jersey2-chat/src/main/java/org/atmosphere/samples/chat/jersey/Jersey2Resource.java