我有一個Grails應用程序,它實現了多個數據源及其任務,以在相應的數據源表中處理和保存excel數據(xlsx類型)。但是當excel文件包含大量數據並且需要更多時間來保存時,我遇到了問題。所以我使用SQL並通過批量插入值,它工作正常,花費最少的時間來保存值,但它將值保存到公共數據源表中。所以我再次遇到問題,我們如何使用多個數據源。如何在Grails中實現批處理
這工作正常,但我們如何在多個數據源中使用。我描述我們的查詢 -
def dataSource
def sql = new Sql(dataSource)
sql.withBatch { stmt ->
stmt.addBatch("INSERT INTO TableName(Fields...) values(.......)
stmt.executeBatch()
}
我不想通過列表來實現它,因爲它採取了大致相同的時間,以節省即
def dataSourceName = 'lookup'
List list= []
(0..10000).each{
Domain dom = new Domain('some property associated with domain class')
batch.add(dom)
if(list.size()>1000){
for(Domain object in list){
object."$dataSourceName".save()
}
}
}
您應該使用像Spring Batch這樣的批處理框架。它與Grails和Groovy結合使用效果很好。 –