我在我的应用程序中使用 MonogoDB。
我正在对数组列表中存在的所有符号执行大插入操作,如下所示
我担心虽然这个插入很大,它可能会阻塞另一个操作,无论如何我可以告诉 MongoDB 在后台执行这个插入操作(即异步)意味着不要让其他执行为此停止。
这可能吗?
public void insert(ArrayList<QuoteReportBean> quotelist)
{
BasicDBList totalrecords = new BasicDBList();
for (QuoteReportBean reportbean: quotelist) {
BasicDBObject dbrecord = new BasicDBObject();
dbrecord.append("custid", reportbean.getCustomerId());
dbrecord.append("symbol", reportbean.getUniqueSymbol());
dbrecord.append("exch", reportbean.getExchange());
totalrecords.add(dbrecord);
}
WriteResult result = coll.insert(totalrecords);
logger.error(" - " + result.toString());
}
我的要求是这个操作应该完成,但同时这不应该阻塞其他操作。我已经看到 WriteConcern 在这种情况下可以提高性能。
WriteConcern.NONE No exceptions are raised, even for network issues.
WriteConcern.NORMAL Write operations that use this write concern will return as soon as the message is written to the socket.
WriteConcern.UNACKNOWLEDGED Write operations that use this write concern will return as soon as the message is written to the socket.
收集自
http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html
我打算使用WriteConcern.UNACKNOWLEDGED
,这是最好的还是我需要处理任何问题?
或者有没有其他方法可以异步完成它?