我對從Domino服務器端操作每30秒輪詢一次外部Web服務提出了一些建議。30秒週期性任務,用於輪詢外部Web服務和緩存數據
背景的快一點......
我們跟蹤汽車的直通TomTom的API的位置。我們現在有要求在我們的網絡應用程序中顯示此信息,並將其覆蓋到地圖上(谷歌,bing等),並與我們的應用程序中的其他數據混合在一起。把它看作是派遣出租車的電話,我們想把這些電話分配給出租車(......它不是出租車\電話,但它是類似的過程)。我們相當積極地刷新調度控制器屏幕,以便他們可以查看所有對象的狀態並將其分配給最近的車輛。如果我們觸發用戶屏幕刷新中的數據拉取,我們會進入一些棘手的控制服務器端,否則我們會每分鐘向TomTom API發出最大允許請求數。
本來我打算安排一個代理來輪詢Web服務,寫入我們的應用程序中的緩存對象,刷新調度控制器屏幕從我們的緩存中提取數據....很好,除了用戶要求是我們的緩存必須每30秒更新一次。我可以創建一個每1分鐘運行一次的程序文檔,但仍然不夠積極。
所以我們目前只剩下:我們的.NET傢伙會創建一個民意調查的TomTom每30secs,我們從他的服務檢索服務,或我想出一個辦法,在Domino中的事。在Domino數據庫中執行這些操作是非常好的,而不是一些獨立的java應用程序或.net,以便在一個系統(Domino)中保留儘可能多的邏輯。
我們在系統中大量使用備份bean。我會在這以後的今天,我希望測試,但這樣做似乎是一個明智的路線走下來..? Spawning threads in a JSF managed bean for scheduled tasks using a timer ...或者是他們的侷限性,我不知道,有沒有人在之前的Domino該解決或有任何意見?
由於提前,
尼克
Tim,Niklas,Tommy, – 2012-03-15 08:55:34
Tim,@Niklas,Tommy,非常感謝您的回覆,也感謝jjtbsomhorst。 3個Domino \ Xpages最大的打擊者回答我的問題......幾乎可以保證建議是一流的。現在你已經給了我解決方案,我會在一週左右的時間內回覆,並告訴你如何去做。再次感謝。 – 2012-03-15 09:07:42