2014-09-05 67 views
5

我有一個簡單的DropWizard服務,我希望有一個REST API來啓動一個長時間運行的處理任務 - CPU和I/O綁定。 REST調用不會等待任務完成,通過輪詢/長輪詢/ web套接字進行通知。使用DropWizard處理長時間請求

現在,我寧願如果我可以在Dropwizard中執行此操作,並將所有內容保存在單個可部署的JAR中。我有什麼選擇?

更新:我感興趣的是我的選項是關於在Dropwizard中運行長時間運行的任務,部署爲無需外部依賴關係的單個jar。只是產生一個新的線程?假設只有少數這樣的請求,它可能會工作,但應該有更好的選擇。

+0

stackoverflow是真的幫助一個特定的問題,而不是幫你選擇一個設計。這就是說,考慮WebHooks。 – 2014-09-05 17:11:45

+0

@ joakim-erdfelt - 將更多細節添加到我原來的問題中,希望現在更有意義。 – bh213 2014-09-05 19:48:16

回答

11

你可能想使用一個管理資源:

http://www.dropwizard.io/1.0.5/docs/manual/core.html#managed-objects

設置一個線程池。然後,您的初始請求可以將消息推送到隊列中。您的線程池可以將消息從隊列中拉出並異步處理它們。

您可能可能會提供一個額外的端點,以便客戶端可以獲取異步進程的當前狀態。

+0

您能舉個例子嗎? – me1111 2016-01-06 15:08:46

+0

這種情況下,websocket是必需的嗎? – me1111 2016-01-06 16:22:27

+0

舉一個例子,這是一個相當大的項目,您需要編寫前端和後端組件,後端需要處理多個請求。哪部分具體?如果你四處搜尋,我肯定有很多例子。 – 2016-01-08 11:15:28

相關問題