mirror of
https://github.com/gotson/komga.git
synced 2026-05-09 05:10:19 +02:00
better logging of time spent in tasks
This commit is contained in:
parent
656b89dba4
commit
1c298221f8
5 changed files with 24 additions and 14 deletions
|
|
@ -56,6 +56,8 @@ dependencies {
|
|||
|
||||
implementation("commons-io:commons-io:2.6")
|
||||
|
||||
implementation("org.apache.commons:commons-lang3:3.9")
|
||||
|
||||
implementation("org.apache.tika:tika-core:1.22")
|
||||
implementation("com.github.junrar:junrar:4.0.0")
|
||||
implementation("net.grey-panther:natural-comparator:1.1")
|
||||
|
|
|
|||
|
|
@ -1,11 +1,14 @@
|
|||
package org.gotson.komga.domain.service
|
||||
|
||||
import mu.KotlinLogging
|
||||
import org.apache.commons.lang3.time.DurationFormatUtils
|
||||
import org.gotson.komga.domain.model.Book
|
||||
import org.gotson.komga.domain.model.BookMetadata
|
||||
import org.gotson.komga.domain.model.Status
|
||||
import org.gotson.komga.domain.persistence.BookRepository
|
||||
import org.springframework.stereotype.Service
|
||||
import org.springframework.transaction.annotation.Transactional
|
||||
import kotlin.system.measureTimeMillis
|
||||
|
||||
private val logger = KotlinLogging.logger {}
|
||||
|
||||
|
|
@ -15,18 +18,21 @@ class BookManager(
|
|||
private val bookParser: BookParser
|
||||
) {
|
||||
|
||||
@Transactional
|
||||
fun parseAndPersist(book: Book) {
|
||||
logger.info { "Parse and persist book: ${book.url}" }
|
||||
try {
|
||||
book.metadata = bookParser.parse(book)
|
||||
} catch (ex: UnsupportedMediaTypeException) {
|
||||
logger.info(ex) { "Unsupported media type: ${ex.mediaType}" }
|
||||
book.metadata = BookMetadata(status = Status.UNSUPPORTED, mediaType = ex.mediaType)
|
||||
} catch (ex: Exception) {
|
||||
logger.error(ex) { "Error while parsing" }
|
||||
book.metadata = BookMetadata(status = Status.ERROR)
|
||||
}
|
||||
bookRepository.save(book)
|
||||
measureTimeMillis {
|
||||
try {
|
||||
book.metadata = bookParser.parse(book)
|
||||
} catch (ex: UnsupportedMediaTypeException) {
|
||||
logger.info(ex) { "Unsupported media type: ${ex.mediaType}" }
|
||||
book.metadata = BookMetadata(status = Status.UNSUPPORTED, mediaType = ex.mediaType)
|
||||
} catch (ex: Exception) {
|
||||
logger.error(ex) { "Error while parsing" }
|
||||
book.metadata = BookMetadata(status = Status.ERROR)
|
||||
}
|
||||
bookRepository.save(book)
|
||||
}.also { logger.info { "Parsing finished in ${DurationFormatUtils.formatDurationHMS(it)}" } }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -40,6 +40,7 @@ class BookParser(
|
|||
val pages = supportedMediaTypes.getValue(mediaType).getPagesList(book.path())
|
||||
logger.info { "Book has ${pages.size} pages" }
|
||||
|
||||
logger.info { "Trying to generate cover for book: ${book.url}" }
|
||||
val thumbnail = try {
|
||||
ByteArrayOutputStream().use {
|
||||
supportedMediaTypes.getValue(mediaType).getPageStream(book.path(), pages.first().fileName).let { cover ->
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ package org.gotson.komga.domain.service
|
|||
import mu.KotlinLogging
|
||||
import net.greypanther.natsort.CaseInsensitiveSimpleNaturalComparator
|
||||
import org.apache.commons.io.FilenameUtils
|
||||
import org.apache.commons.lang3.time.DurationFormatUtils
|
||||
import org.gotson.komga.domain.model.Book
|
||||
import org.gotson.komga.domain.model.Serie
|
||||
import org.springframework.stereotype.Service
|
||||
|
|
@ -60,7 +61,7 @@ class FileSystemScanner {
|
|||
}.toList()
|
||||
}.also {
|
||||
val countOfBooks = scannedSeries.sumBy { it.books.size }
|
||||
logger.info { "Scanned ${scannedSeries.size} series and $countOfBooks books in $it ms" }
|
||||
logger.info { "Scanned ${scannedSeries.size} series and $countOfBooks books in ${DurationFormatUtils.formatDurationHMS(it)}" }
|
||||
}
|
||||
|
||||
return scannedSeries
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
package org.gotson.komga.domain.service
|
||||
|
||||
import mu.KotlinLogging
|
||||
import org.apache.commons.lang3.time.DurationFormatUtils
|
||||
import org.gotson.komga.domain.model.Library
|
||||
import org.gotson.komga.domain.model.Status
|
||||
import org.gotson.komga.domain.persistence.BookRepository
|
||||
|
|
@ -75,15 +76,14 @@ class LibraryManager(
|
|||
}
|
||||
}
|
||||
}
|
||||
}.also { logger.info { "Library update finished in $it ms" } }
|
||||
}.also { logger.info { "Library update finished in ${DurationFormatUtils.formatDurationHMS(it)}" } }
|
||||
}
|
||||
|
||||
@Transactional
|
||||
fun parseUnparsedBooks() {
|
||||
logger.info { "Parsing all books in status: unkown" }
|
||||
val booksToParse = bookRepository.findAllByMetadataStatus(Status.UNKNOWN)
|
||||
measureTimeMillis {
|
||||
booksToParse.forEach { bookManager.parseAndPersist(it) }
|
||||
}.also { logger.info { "Parsed ${booksToParse.size} books in $it ms" } }
|
||||
}.also { logger.info { "Parsed ${booksToParse.size} books in ${DurationFormatUtils.formatDurationHMS(it)}" } }
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue