在我的 build.gradle 中,我有一个 CorbTask 类型的任务,我希望在其中通过大量 URI 执行一些进程。在这种情况下,我处理的 URI 略少于 800,000 个。
task updateSharePointMetadata(type: com.marklogic.gradle.task.CorbTask) {
classpath = configurations.corb
xccUrl = "xcc://${mlUsername}:${mlPassword}@${mlHost}:${mlStagingPort}"
urisModule = "corb/selectSharepointMetadata.xqy|ADHOC"
processModule = "corb/updateBinarySizeInSharePointMetadata.xqy|ADHOC"
threadCount = 8
batchSize = 100
batchUriDelim=','
}
当我运行这个任务时......在对 URI 进行排队的过程中,我得到了 OutOfMemoryError,Out of Heap space。当任务运行时......或者至少我之前做过,现在至少它运行......但我仍然看到 Free Memory 警告,因为它排队 uris。
WARNING: free memory: 35 MiB of 394
在 gradle 属性中,我已经有org.gradle.jvmargs
参数设置来传递-Xmx
设置,但它似乎没有任何区别。我认为这是因为 CorbTask 扩展了 JavaExec,它是衍生出来的。所以我看了看可能jvmArgs
在 CorbTask 上设置属性,但那是不可设置的。
有没有人有任何想法?