同时向雅典娜发送 10_000 个执行查询。 我们预计失败的次数会比我们得到的多得多。当前 Athena 队列限制为 100,如果我们同时触发 10K 个查询,则除了前 100 个之外的所有查询都应该失败。我们看到查询不会立即失败,但其中一些会随着时间的推移而完成。在监控雅典娜控制台时,一旦排队的查询被消耗,新的查询就会被填入队列,但在任何时候都不会超过 100。
其余提交的查询在哪里排队?
val workerPool: ExecutorService = Executors.newFixedThreadPool(2000, AppThreadFactory())
for (item in 1..2000) {
bookIds.add("BOOK_$item")
futureList.add(workerPool.submit { accountBalanceTask(bookIds, metricsCollection) })
futureList.add(workerPool.submit { positionSummaryTask(bookIds, metricsCollection) })
futureList.add(workerPool.submit { openTaxLotTask(bookIds, metricsCollection) })
futureList.add(workerPool.submit { closeTaxLotChangeTask(bookIds, metricsCollection) })
futureList.add(workerPool.submit { cashActivityChangeTask(bookIds, metricsCollection) })
bookIds.clear()
}
futureList.forEach {
run {
try {
val get = it.get()
} catch (ex: Exception) {
//LOG.error("Exception happened", ex)
}
}
}
workerPool.shutdown()