count number of failes that have failed to load

pull/53/head
Zlatin Balevsky 2020-10-29 10:53:51 +00:00
parent 35d0d72f1b
commit 264ba83936
No known key found for this signature in database
GPG Key ID: A72832072D525E41
2 changed files with 19 additions and 11 deletions

View File

@ -3,4 +3,5 @@ package com.muwire.core.files
import com.muwire.core.Event
class AllFilesLoadedEvent extends Event {
int failed
}

View File

@ -14,6 +14,7 @@ import java.nio.file.Paths
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
import java.util.concurrent.ThreadFactory
import java.util.concurrent.atomic.AtomicInteger
import java.util.logging.Level
import java.util.stream.Stream
@ -134,6 +135,7 @@ class PersisterFolderService extends BasePersisterService {
*/
private void _load() {
int loaded = 0
AtomicInteger failed = new AtomicInteger()
Stream<Path> stream = Files.walk(location.toPath())
if (core.muOptions.plugin)
stream = stream.parallel()
@ -141,21 +143,26 @@ class PersisterFolderService extends BasePersisterService {
it.getFileName().toString().endsWith(".json")
})
.forEach({
log.fine("processing path $it")
def slurper = new JsonSlurper()
def parsed = slurper.parse it.toFile()
def event = fromJsonLite parsed
if (event == null) return
try {
def parsed = slurper.parse it.toFile()
def event = fromJsonLite parsed
if (event == null) return
log.fine("loaded file $event.loadedFile.file")
listener.publish event
if (!core.muOptions.plugin) {
loaded++
if (loaded % 10 == 0)
Thread.sleep(20)
log.fine("loaded file $event.loadedFile.file")
listener.publish event
if (!core.muOptions.plugin) {
loaded++
if (loaded % 10 == 0)
Thread.sleep(20)
}
} catch (Exception e) {
log.log(Level.WARNING,"failed to load $it",e)
failed.incrementAndGet()
}
})
listener.publish(new AllFilesLoadedEvent())
listener.publish(new AllFilesLoadedEvent(failed : failed.get()))
}
private void persistFile(SharedFile sf, InfoHash ih) {