【发布时间】:2020-12-21 23:18:33
【问题描述】:
我目前有以下内容,每条记录一次执行一条。
private var db: Option[DatabaseDef] = ....
typedRecords.foreach(publishToDatabase(_))
def publishToDatabase(record: T): Unit = {
Await.result(runDatabaseAction(record), getQueryTimeOut(settings))
}
private def runDatabaseAction(record: T): Future[Int] = {
db.get.run(
executeStreamingAction(record, settings)
.transactionally
.withStatementParameters(statementInit = _.setQueryTimeout(getQueryTimeOut(settings).toSeconds.toInt)))
}
override def executeStreamingAction(record: TFFactDataIngestionMessage, settings: GSConnectorSettings):
DBIOAction[Int, NoStream, Effect with Effect.Transactional] = {
val sqlUAction =
sqlu"""
INSERT INTO ...
"""
sqlUAction.transactionally
}
db.get.run 方法不接受动作数组。
正在寻找一种立即发布 typedRecords 的方法,知道如何转换。
【问题讨论】: