2015-11-01 149 views
2

有沒有辦法將某些東西異步插入到mongodb中?Java:異步MongoTemplate/MongoOperation

我知道mongodb在大多數情況下是相當快的,但是想一下,只要給出命令,我可以通過返回來節省一些毫秒。

這是用於連接到服務器以發送mongodb命令來插入內容的用例。一旦命令發出,您想要返回客戶端,而不一定等待來自mongodb的響應。

我閱讀文檔:http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/

似乎只異步讀取,不能異步地插入。

回答

2

Spring Data MongoDB documentation僅顯示在查詢方法上使用@Async註釋的示例,但可以在每種方法上使用它。

引用本文檔:

信息庫中查詢可以異步使用Spring的異步方法執行能力來執行。這意味着方法將在調用時立即返回,並且實際的查詢執行將發生在已提交給Spring TaskExecutor的任務中。

方法的異步調用不是Spring Data關注的問題,而是Spring核心問題,因此您可以參考Spring framework documentation

簡單地說,你只需要在你想要的方法上添加@Async註解,並在Spring配置中配置一個合適的任務執行器。示例XML配置是:

<task:annotation-driven executor="myExecutor" /> 
<task:executor id="myExecutor" pool-size="5"/> 
+0

如果我用春天開機,將這個XML配置自動如果我只是使用@Async標註在我的方法調用呢?此外,我看到異步似乎只對自定義方法有效,而不是用於創建mongotemplate對象的mongo的java驅動程序。謝謝你的答覆,這是非常詳細的。 – Simon

+1

@Simon是的,你需要這種配置。但是,如果您使用的是Java配置,則只需在配置類中使用'@ EnableAsync'註釋。看看[本教程](https://spring.io/guides/gs/async-method/)。 – Tunaki

+0

好的,謝謝 - 讓我測試一下,並會回覆你。 – Simon