Switch to LAX Json parser and parallelize the stream after filtering

pull/62/head
Zlatin Balevsky 2021-06-09 12:50:00 +01:00
parent aa2b80cc0d
commit 1e7e30dee2
No known key found for this signature in database
GPG Key ID: A72832072D525E41
1 changed files with 7 additions and 6 deletions

View File

@ -5,6 +5,7 @@ import com.muwire.core.filefeeds.UIFilePublishedEvent
import com.muwire.core.filefeeds.UIFileUnpublishedEvent
import com.muwire.core.util.DataUtil
import groovy.json.JsonOutput
import groovy.json.JsonParserType
import groovy.json.JsonSlurper
import groovy.util.logging.Log
@ -137,16 +138,16 @@ class PersisterFolderService extends BasePersisterService {
int loaded = 0
AtomicInteger failed = new AtomicInteger()
Stream<Path> stream = Files.walk(location.toPath())
if (core.muOptions.plugin)
stream = stream.parallel()
stream.filter({
stream = stream.filter({
it.getFileName().toString().endsWith(".json")
})
.forEach({
if (core.muOptions.plugin)
stream = stream.parallel()
stream.forEach({
log.fine("processing path $it")
def slurper = new JsonSlurper()
def slurper = new JsonSlurper(type: JsonParserType.LAX)
try {
def parsed = slurper.parse it.toFile()
def parsed = slurper.parse(it.toFile())
def event = fromJsonLite parsed
if (event == null) return