我有一个 mongodb 集合,其中包含生命周期较短的实时数据。当我需要它们时,我也想删除一旦我找到,
这是使用 morphia 包装器的伪代码:
for(LogEntity log: mongo.find(LogEntity.class, "grabMe", true)){
mongo.delete(mongo.createQuery(LogEntity.class).filter("logId", log.id));
//Do work and dispose the log
}
我正在对此进行一些测试,因为这是 Google GCM 的一部分,所以很难模拟重负载。
这是在每 2 秒Runnable
喂一次的 a 中运行的。ScheduledExecutorService
scheduleAtFixedRate
这会起作用还是有更好的方法来做到这一点。find()
在这种情况下工作如何。我会通过从 find() 中删除来搞乱 find() 的内部数组吗?如果有很多LogEntity
,我无法记住它们。