scala - 执行期货列表,只有列表中的前两个被执行 - Scala
问题描述
我有以下代码并readCSV
从路径中读取并转储数据库中的记录。但是,只有前两个列表值我才能看到数据库中的行。知道有什么问题吗?我想readCSV
为所有 AccountListValues 执行。readCSV
返回一个Future[Unit]
。
val AccountsList = List("account", "accountstd","accountcvg","accountcvgstd")
val futuresBuffer = new ListBuffer[Future[Unit]]()
taskInput.dataSet.foreach(exporttype => {
exporttype.toLowerCase match {
case "accounts" => {
AccountsList.foreach(tableName => {
logger.info(s"Listvalue $tableName")
val csvPath = wrapper.filter(s"/${taskInput.parquetFilePath}/$tableName/*.csv").get(0)
logger.info(s"csvPath - $csvPath")
futuresBuffer += sqlBulkCopy.readCSVFile(csvPath,
taskInput.sqlServerJdbcString, tableName, rmsStorageWrapper)
})
}
case "geography" =>
case "locations" =>
}
})
val remaining = new AtomicInteger(futuresBuffer.length)
futuresBuffer foreach {
_ onComplete {
case s@ Success(_) => {
if (remaining.decrementAndGet() == 0) {
// Arbitrarily return the final success
s.value
}
}
case f@Failure(_) => {
logger.error(f.exception.getMessage)
}
}//onComplete
}
解决方案
推荐阅读
- python - matplotlib.path后面使用的是哪种算法
- reactjs - 使用 CoinAPI 将 API 请求压缩为单个查询
- git - 适用于 Windows 的 Git - 每次推送都要求输入 SSH 密码
- go - 如何使用 goquery 获取 select > option 的值
- npm - Npm update 不会修改 package.json
- postgresql - Postgres,获取两个都链接到同一个ID的行值
- git - 为什么 PR 中有很多 commits 消息
- python - 如何将networkX图转换为Sage图?
- php - 使用静态 HTML 页面访问 WordPress 搜索
- javascript - 在 JavaScript 中创建具有给定深度的嵌套列表项