我正在编写一个应用程序,它涉及到一些其他应用程序的异步调用。我的应用程序必须不断发送此请求到其他应用程序,直到我得到一个特定的响应。我可以在5秒内发送此请求。来自webapp的异步调用
使用一个线程将不会是一个好主意,这将是实现这一
的最佳实践当我得到我必须将它保存在我的应用程序数据库的具体回应。
我正在编写一个应用程序,它涉及到一些其他应用程序的异步调用。我的应用程序必须不断发送此请求到其他应用程序,直到我得到一个特定的响应。我可以在5秒内发送此请求。来自webapp的异步调用
使用一个线程将不会是一个好主意,这将是实现这一
的最佳实践当我得到我必须将它保存在我的应用程序数据库的具体回应。
我不认为有没有另外的方式做到这一点,至少以某种方式创建一个新的线程(或使用一个不活动的)来做到这一点。但是,您可能正在寻找某些东西。 Spring提供了可以用来每5秒发送一个请求的任务任务。
要通过注解做到这一点,你必须首先这个命名空间添加到您的config.xml
xmlns:task="http://www.springframework.org/schema/task"
http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task-3.0.xsd
然后加入这样的定义:
<task:annotation-driven>
如今终于,你可以添加这个简单的注解到将执行请求到您的其他服务器的方法
@Scheduled(fixedRate = 5000) //time in milliseconds
更多信息o ñ这可以在这个site找到。
如果你不需要控制新的脚本,并且当那些线程请求必须死掉,你可以使用Spring异步。 https://spring.io/guides/gs/async-method/
如果你想要一个额外的控制,你可以使用Spring的DeferredResult以及 http://www.javacodegeeks.com/2013/03/deferredresult-asynchronous-processing-in-spring-mvc.html 这最后一个将作品作为未来的对象。