diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/event/listener/ApplicationEventListener.kt b/src/main/kotlin/com/dcd/server/core/domain/application/event/listener/ApplicationEventListener.kt index 7887428c..447fd383 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/event/listener/ApplicationEventListener.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/event/listener/ApplicationEventListener.kt @@ -40,12 +40,13 @@ class ApplicationEventListener( val applicationList = queryApplicationPort.findByIds(event.applicationIdList) applicationList.forEach { application -> - containerPort.execute { - deleteContainer(application) - deleteImage(application) - } CoroutineScope(Dispatchers.IO).launch { + containerPort.execute { + deleteContainer(application) + deleteImage(application) + } + refreshApplicationService.refresh(application) val updatedApplication = application.copy(status = ApplicationStatus.STOPPED) diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/DeleteApplicationDirectoryService.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/DeleteApplicationDirectoryService.kt index e871223c..e0a4b519 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/DeleteApplicationDirectoryService.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/DeleteApplicationDirectoryService.kt @@ -3,5 +3,5 @@ package com.dcd.server.core.domain.application.service import com.dcd.server.core.domain.application.model.Application interface DeleteApplicationDirectoryService { - suspend fun deleteApplicationDirectory(application: Application) + fun deleteApplicationDirectory(application: Application) } \ No newline at end of file diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/RefreshApplicationService.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/RefreshApplicationService.kt index b63d32b4..bdbc9538 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/RefreshApplicationService.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/RefreshApplicationService.kt @@ -3,5 +3,5 @@ package com.dcd.server.core.domain.application.service import com.dcd.server.core.domain.application.model.Application interface RefreshApplicationService { - suspend fun refresh(application: Application) + fun refresh(application: Application) } \ No newline at end of file diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/DeleteApplicationDirectoryServiceImpl.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/DeleteApplicationDirectoryServiceImpl.kt index ab0ddc52..68ecbaef 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/DeleteApplicationDirectoryServiceImpl.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/DeleteApplicationDirectoryServiceImpl.kt @@ -7,8 +7,6 @@ import com.dcd.server.core.domain.application.model.Application import com.dcd.server.core.domain.application.model.enums.ApplicationStatus import com.dcd.server.core.domain.application.service.DeleteApplicationDirectoryService import com.dcd.server.core.domain.application.util.FailureCase -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext import org.springframework.context.ApplicationEventPublisher import org.springframework.stereotype.Service import java.nio.file.Paths @@ -18,14 +16,12 @@ class DeleteApplicationDirectoryServiceImpl( private val fileOperationPort: FileOperationPort, private val eventPublisher: ApplicationEventPublisher ) : DeleteApplicationDirectoryService { - override suspend fun deleteApplicationDirectory(application: Application) { - withContext(Dispatchers.IO) { - try { - fileOperationPort.deleteDirectory(Paths.get(application.directoryName)) - } catch (e: FileOperationException) { - eventPublisher.publishEvent(ChangeApplicationStatusEvent(ApplicationStatus.FAILURE, application, FailureCase.DELETE_DIRECTORY_FAILURE)) - throw e - } + override fun deleteApplicationDirectory(application: Application) { + try { + fileOperationPort.deleteDirectory(Paths.get(application.directoryName)) + } catch (e: FileOperationException) { + eventPublisher.publishEvent(ChangeApplicationStatusEvent(ApplicationStatus.FAILURE, application, FailureCase.DELETE_DIRECTORY_FAILURE)) + throw e } } } diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt index 3755912c..69c5e436 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/service/impl/RefreshApplicationServiceImpl.kt @@ -20,7 +20,7 @@ class RefreshApplicationServiceImpl( private val queryVolumePort: QueryVolumePort ) : RefreshApplicationService { @Lock("#application.id", waitTime = 1000 * 10, leaseTime = 1000 * 60 * 30) - override suspend fun refresh(application: Application) { + override fun refresh(application: Application) { val applicationType = application.applicationType when(applicationType) { ApplicationType.SPRING_BOOT, ApplicationType.NEST_JS, ApplicationType.GIN -> { diff --git a/src/main/kotlin/com/dcd/server/core/domain/application/spi/ApplicationImageFilePort.kt b/src/main/kotlin/com/dcd/server/core/domain/application/spi/ApplicationImageFilePort.kt index 44905214..7dacfc1e 100644 --- a/src/main/kotlin/com/dcd/server/core/domain/application/spi/ApplicationImageFilePort.kt +++ b/src/main/kotlin/com/dcd/server/core/domain/application/spi/ApplicationImageFilePort.kt @@ -3,5 +3,5 @@ package com.dcd.server.core.domain.application.spi import com.dcd.server.core.domain.application.model.Application interface ApplicationImageFilePort { - suspend fun createImageFile(application: Application) + fun createImageFile(application: Application) } diff --git a/src/main/kotlin/com/dcd/server/infrastructure/domain/application/adapter/ApplicationImageFileAdapter.kt b/src/main/kotlin/com/dcd/server/infrastructure/domain/application/adapter/ApplicationImageFileAdapter.kt index f7c1fcad..4cbfc09e 100644 --- a/src/main/kotlin/com/dcd/server/infrastructure/domain/application/adapter/ApplicationImageFileAdapter.kt +++ b/src/main/kotlin/com/dcd/server/infrastructure/domain/application/adapter/ApplicationImageFileAdapter.kt @@ -13,8 +13,6 @@ import com.dcd.server.core.domain.application.spi.QueryApplicationPort import com.dcd.server.core.domain.application.util.FailureCase import com.dcd.server.core.domain.env.spi.QueryApplicationEnvPort import com.dcd.server.infrastructure.domain.application.file.ImageFileContent -import kotlinx.coroutines.Dispatchers -import kotlinx.coroutines.withContext import org.springframework.context.ApplicationEventPublisher import org.springframework.stereotype.Component import java.io.File @@ -29,13 +27,7 @@ class ApplicationImageFileAdapter( private val eventPublisher: ApplicationEventPublisher, private val encryptPort: EncryptPort ) : ApplicationImageFilePort { - override suspend fun createImageFile(application: Application) { - withContext(Dispatchers.IO) { - createFile(application) - } - } - - private fun createFile(application: Application) { + override fun createImageFile(application: Application) { val version = application.version val applicationPath = Paths.get(application.directoryName) val applicationEnv =