我正在Grails中创建一个Web应用程序,并且我希望持续(每5分钟左右)使用GET轮询REST服务,该服务将检索一系列消息(或可能没有,它取决于),一旦它是donde,我的应用程序应该将检索到的数据保存为一个对象并将其存储在我的数据库中。问题是我不知道如何实现它(使用Quartz的cron作业?)连续轮询Grails中的REST服务
4
A
回答
5
使用石英的cron作业将非常容易实现。石英插件非常易于使用(只需安装它,然后“grails create-job Foo”)。在任务内部,您可以使用cron表达式(或许多其他方式),这可以使作业根据计划执行。
根据一些事情,GET表达式也很容易编写。根据不同的服务你想打,因为它可以作为简单:使用石英插件
def result = new URL("http://google.com").text
// parse result depending on what it is
4
,使一个cron作业出它可能是前进的最好方式,特别是如果你将需要其他pollers。然而,如果你知道它曾经有过,并且你不想拉入石英(出于某种奇怪的原因),你仍然可以使用计时器任务来滚动自己的轮询器,或者甚至使用常规线程:
Thread.start {
while (keepGoing) {
def result = new URL("http://google.com").text
// parse result depending on what it is
//perhaps def model = new YourDomainModel(result).save()
keepGoing = model.shouldContinue //calculate whether to keep going based on the result, or some other method call/logic
Thread.sleep(5*60*1000) //min*seconds_per_min*milliseconds_per_second
}
}
然后你可以在bootStrap期间调用它,或者创建一个服务类,在构造函数中调用上面的方法,并且有一个方法来停止线程(但是如果你到了这个阶段,它真的更容易使用石英)。
相关问题
- 1. Javascript连续服务器轮询
- 2. WCF REST服务和状态轮询
- 3. Android连续tcp轮询
- 4. Facebook聊天如何避免连续轮询服务器?
- 5. WCF服务轮询
- 6. React + Flux中的REST轮询
- 7. 轮询的Java Web服务
- 8. 聊天服务器 - 持续TCP或每个轮询的新连接
- 9. 服务结构,什么微服务最适合从服务总线进行连续轮询
- 10. Grails通过ajax调用服务器轮询
- 11. Grails的POST REST服务问题
- 12. 服务堆栈中的长轮询
- 13. 使用Windows服务轮询
- 14. C#轮询TCP服务器
- 15. 替代服务器轮询?
- 16. 要轮询或不轮询(在Web服务上下文中)
- 17. 轮询服务器状态的方法
- 18. 客户轮询服务的活动
- 19. 在Android中连续运行Socket.io服务
- 20. 使用select来轮询连接 - TCP服务器
- 21. 使用的setInterval()做简单连续的轮询
- 22. 可以连续轮询iphone的GPS坐标吗?
- 23. WCF从另一个服务轮询
- 24. Asp.Net聊天服务器端轮询
- 25. 使用JavaScript进行服务器轮询
- 26. 在后台轮询服务器
- 27. 长轮询导致服务器问题?
- 28. 每小时轮询TCP服务器ios
- 29. Ftp轮询服务在春天Intellration
- 30. wamp apache - 轮询服务器不断