我正在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. Facebook聊天如何避免連續輪詢服務器?
- 4. Android連續tcp輪詢
- 5. Grails中的REST風格的Web服務
- 6. Angular JS和Grails REST服務
- 7. WCF服務輪詢
- 8. React + Flux中的REST輪詢
- 9. 輪詢的Java Web服務
- 10. 推送通知是否會導致服務器上的連續輪詢?
- 11. 聊天服務器 - 持續TCP或每個輪詢的新連接
- 12. 服務結構,什麼微服務最適合從服務總線進行連續輪詢
- 13. Grails通過ajax調用服務器輪詢
- 14. Grails的POST REST服務問題
- 15. 服務堆棧中的長輪詢
- 16. 長輪詢服務器
- 17. Node.js服務輪詢器
- 18. BizTalk WCF服務輪詢
- 19. 使用Windows服務輪詢
- 20. C#輪詢TCP服務器
- 21. WCF服務輪詢掛起
- 22. 替代服務器輪詢?
- 23. 要輪詢或不輪詢(在Web服務上下文中)
- 24. Jquery Ajax服務器輪詢;根據早期的ajax響應輪詢服務器
- 25. 在服務器中實現長輪詢
- 26. Android:連續運行服務
- 27. Android連續運行服務
- 28. Apache HttpClient服務器策略的多個輪詢連接
- 29. 輪詢服務器狀態的方法
- 30. 客戶輪詢服務的活動