mongodb java 多线程执行
2015-10-12 08:28
441 查看
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.ReadPreference;
import java.net.UnknownHostException;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MultiThreadedExample {
public
static final int NUM_DOCUMENTS = 10000;
public
static final int NUM_THREADS = 100;
public
static void main(String[] args) throws UnknownHostException {
MongoClientURI uri = args.length > 0 ? new
MongoClientURI(args[0])
: new
MongoClientURI("mongodb://localhost");
MongoClient
mongoClient = new MongoClient(uri);
DB db =
mongoClient.getDB(uri.getDatabase() != null ?
uri.getDatabase()
:
"test");
final
DBCollection collection = db.getCollection("test");
collection.drop();
ExecutorService executorService = Executors
.newFixedThreadPool(NUM_THREADS);
for (int i =
0; i < NUM_THREADS; i++) {
executorService.submit(new Runnable() {
@Override
public void
run() {
Random
random = new Random();
while (true)
{
int i =
random.nextInt(NUM_DOCUMENTS);
try {
DBObject
document = collection
.find(new
BasicDBObject("i", i))
.setReadPreference(
ReadPreference.secondaryPreferred())
.one();
if (document
== null) {
collection.insert(new BasicDBObject("i", i));
} else
{
collection.update(new BasicDBObject("_id",
document.get("_id")),
new
BasicDBObject("$set",
new
BasicDBObject("i", i + 1)));
}
} catch
(Exception e) {
e.printStackTrace();
}
}
}
});
}
}
}
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.ReadPreference;
import java.net.UnknownHostException;
import java.util.Random;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class MultiThreadedExample {
public
static final int NUM_DOCUMENTS = 10000;
public
static final int NUM_THREADS = 100;
public
static void main(String[] args) throws UnknownHostException {
MongoClientURI uri = args.length > 0 ? new
MongoClientURI(args[0])
: new
MongoClientURI("mongodb://localhost");
MongoClient
mongoClient = new MongoClient(uri);
DB db =
mongoClient.getDB(uri.getDatabase() != null ?
uri.getDatabase()
:
"test");
final
DBCollection collection = db.getCollection("test");
collection.drop();
ExecutorService executorService = Executors
.newFixedThreadPool(NUM_THREADS);
for (int i =
0; i < NUM_THREADS; i++) {
executorService.submit(new Runnable() {
@Override
public void
run() {
Random
random = new Random();
while (true)
{
int i =
random.nextInt(NUM_DOCUMENTS);
try {
DBObject
document = collection
.find(new
BasicDBObject("i", i))
.setReadPreference(
ReadPreference.secondaryPreferred())
.one();
if (document
== null) {
collection.insert(new BasicDBObject("i", i));
} else
{
collection.update(new BasicDBObject("_id",
document.get("_id")),
new
BasicDBObject("$set",
new
BasicDBObject("i", i + 1)));
}
} catch
(Exception e) {
e.printStackTrace();
}
}
}
});
}
}
}
相关文章推荐
- mongodb&nbsp;shard&nbsp;分片
- mongodb&nbsp;权限管理
- mongodb&nbsp;mapReduce实例
- mongodb&nbsp;replset&nbsp;成员类型
- mongodb&nbsp;timestamp&nbsp;处理
- mongodb&nbsp;模糊查询
- 编译MongoDB&nbsp;及驱动
- mongodb&nbsp;js使用
- Mongodb&nbsp;shard&nbsp;&amp;&amp;&nbsp;shardkey
- MongoDB&nbsp;复制集配置
- MongoDB每64位版本下载
- 双十一来了,别让你的mongodb宕机了
- MongoDB安装指南(windows环境下)
- Ubuntu 升级 MongoDB 2.x 到 3.x
- Mongodb的相关文档整理(一)
- 关于Mongodb的全面总结,学习mongodb的人,可以从这里开始!
- MongoDB安装
- MongoDB安装
- MongoDB学习(一)
- MongoDB——权限管理