From aac4ad24e3efe5784bf99f05fb9e14855e77fbd9 Mon Sep 17 00:00:00 2001 From: Ryan Harrison Date: Tue, 29 Mar 2022 22:48:00 +0100 Subject: [PATCH] Only update link after processing when fields have been updated --- src/main/kotlin/lynks/worker/LinkProcessingWorker.kt | 11 ++++++++--- .../kotlin/lynks/worker/LinkProcessorWorkerTest.kt | 3 --- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/lynks/worker/LinkProcessingWorker.kt b/src/main/kotlin/lynks/worker/LinkProcessingWorker.kt index 5fca3c96..a20fe4c1 100644 --- a/src/main/kotlin/lynks/worker/LinkProcessingWorker.kt +++ b/src/main/kotlin/lynks/worker/LinkProcessingWorker.kt @@ -50,6 +50,7 @@ class LinkProcessorWorker( private suspend fun processLinkPersist(link: Link, resourceSet: EnumSet, process: Boolean) { try { + val originalLink = link.copy(props = link.props) resourceManager.deleteTempFiles(link.url) link.props.clearTasks() val resources = processorFactory.createProcessors(link.url).flatMap { @@ -63,12 +64,16 @@ class LinkProcessorWorker( } } } - link.thumbnailId = findThumbnail(resources) + link.thumbnailId = findThumbnail(resources) ?: link.thumbnailId link.props.addAttribute(DEAD_LINK_PROP, false) linkService.mergeProps(link.id, link.props) - linkService.update(link) - log.info("Link processing worker request complete, saved {} resources for entry={}", link.id, resources.size) + if (link != originalLink) { + linkService.update(link) + } else { + log.info("No changes found after link processing, not updating entity") + } + log.info("Link processing worker request complete, saved {} resources for entry={}", resources.size, link.id) val message = "Link processed successfully, ${resources.size} resources created" if (process) { entryAuditService.acceptAuditEvent( diff --git a/src/test/kotlin/lynks/worker/LinkProcessorWorkerTest.kt b/src/test/kotlin/lynks/worker/LinkProcessorWorkerTest.kt index 04694ccd..e3d32be6 100644 --- a/src/test/kotlin/lynks/worker/LinkProcessorWorkerTest.kt +++ b/src/test/kotlin/lynks/worker/LinkProcessorWorkerTest.kt @@ -138,7 +138,6 @@ class LinkProcessorWorkerTest { coVerify(exactly = 1) { processorFactory.createProcessors(link.url) } verify(exactly = 1) { processor.close() } verify(exactly = 1) { linkService.mergeProps(eq("id1"), any()) } - verify(exactly = 1) { linkService.update(link) } coVerify(exactly = 1) { notifyService.create(any()) } coVerify(exactly = 1) { processor.scrapeResources(resourceSet) } verify(exactly = 1) { resourceManager.migrateGeneratedResources(link.id, generatedResources) } @@ -166,7 +165,6 @@ class LinkProcessorWorkerTest { coVerify(exactly = 1) { processorFactory.createProcessors(link.url) } verify(exactly = 1) { processor.close() } verify(exactly = 1) { linkService.mergeProps(eq("id1"), any()) } - verify(exactly = 1) { linkService.update(link) } coVerify(exactly = 0) { notifyService.create(any()) } coVerify(exactly = 0) { processor.scrapeResources(any()) } @@ -192,7 +190,6 @@ class LinkProcessorWorkerTest { coVerify(exactly = 1) { processorFactory.createProcessors(link.url) } verify(exactly = 1) { processor.close() } verify(exactly = 1) { linkService.mergeProps(eq("id1"), any()) } - verify(exactly = 1) { linkService.update(link) } coVerify(exactly = 1) { notifyService.create(any()) } coVerify(exactly = 0) { processor.scrapeResources(any()) }