From 7b93d858b0f29ad73379bc849beb91b7e2aef351 Mon Sep 17 00:00:00 2001 From: jombi Date: Wed, 23 Oct 2024 10:21:17 +0900 Subject: [PATCH] fix :: QUEUE MESSAGE CACHE FIX --- .../service/infra/GenerativeImageService.kt | 6 +++--- .../com/teamapi/palette/ws/actor/SinkActor.kt | 14 +++++++++----- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/teamapi/palette/service/infra/GenerativeImageService.kt b/src/main/kotlin/com/teamapi/palette/service/infra/GenerativeImageService.kt index 1b9c033..6fbda45 100644 --- a/src/main/kotlin/com/teamapi/palette/service/infra/GenerativeImageService.kt +++ b/src/main/kotlin/com/teamapi/palette/service/infra/GenerativeImageService.kt @@ -78,13 +78,13 @@ class GenerativeImageService( generated.collect { when (it) { is QueueInfoMessage -> { - actor.setGenerating(room.id!!, true, it.position) + actor.setGenerating(room.id!!, it.position) actor.addQueue(room.id, it.position, true) println("${room.id}: ${it.position}") } is GenerateMessage -> { - actor.setGenerating(room.id!!, false, -1) - actor.addQueue(room.id, -1, true) + actor.clearGenerating(room.id!!) + actor.addQueue(room.id, -1, false) if (it.result) { guaranteed = it.image!! } diff --git a/src/main/kotlin/com/teamapi/palette/ws/actor/SinkActor.kt b/src/main/kotlin/com/teamapi/palette/ws/actor/SinkActor.kt index f698bb1..c03b220 100644 --- a/src/main/kotlin/com/teamapi/palette/ws/actor/SinkActor.kt +++ b/src/main/kotlin/com/teamapi/palette/ws/actor/SinkActor.kt @@ -50,11 +50,15 @@ class SinkActor( } fun isGenerating(roomId: Long) = generates[roomId] - fun setGenerating(roomId: Long, curr: Boolean, pos: Int) { - val prev = isGenerating(roomId) != null - if (curr != prev) { - if (curr) generates[roomId] = pos - else generates.remove(roomId) + fun setGenerating(roomId: Long, pos: Int) { + synchronized(generates) { + generates.remove(roomId) + generates[roomId] = pos + } + } + fun clearGenerating(roomId: Long) { + synchronized(generates) { + generates.remove(roomId) } }