diff --git a/batch/build.gradle.kts b/batch/build.gradle.kts index 919fee4..e9d15a0 100644 --- a/batch/build.gradle.kts +++ b/batch/build.gradle.kts @@ -2,7 +2,6 @@ dependencies { implementation(project(":core")) implementation("org.springframework.boot:spring-boot-starter-batch") - implementation("org.springframework.boot:spring-boot-starter-data-mongodb") runtimeOnly("org.postgresql:postgresql") runtimeOnly("com.h2database:h2") } diff --git a/build.gradle.kts b/build.gradle.kts index ae4aa3a..7d86f02 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -45,6 +45,7 @@ subprojects { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.springframework.boot:spring-boot-starter-data-jpa") + implementation("org.springframework.boot:spring-boot-starter-data-mongodb") implementation("com.wafflestudio.truffle.sdk:truffle-spring-boot-starter:1.1.2") implementation("com.wafflestudio.truffle.sdk:truffle-logback:1.1.2") diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 3395cad..e63b511 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -18,9 +18,10 @@ dependencies { implementation("software.amazon.awssdk:secretsmanager:2.20.66") implementation("software.amazon.awssdk:sts:2.20.66") - implementation("org.springframework.boot:spring-boot-starter-data-mongodb-reactive") implementation("org.springframework.boot:spring-boot-starter-data-redis") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core") + runtimeOnly("com.mysql:mysql-connector-j") kapt("com.querydsl:querydsl-apt::jakarta") } diff --git a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/mongo/MongoService.kt b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/mongo/MongoService.kt index 77d1267..e735ff2 100644 --- a/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/mongo/MongoService.kt +++ b/core/src/main/kotlin/com/wafflestudio/snuttev/core/domain/mongo/MongoService.kt @@ -1,7 +1,10 @@ package com.wafflestudio.snuttev.core.domain.mongo import com.wafflestudio.snuttev.core.domain.lecture.model.LectureRatingDao -import org.springframework.data.mongodb.core.ReactiveMongoTemplate +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import org.springframework.data.mongodb.core.MongoTemplate import org.springframework.data.mongodb.core.query.Criteria import org.springframework.data.mongodb.core.query.Query import org.springframework.data.mongodb.core.query.Update @@ -9,14 +12,18 @@ import org.springframework.stereotype.Service @Service class MongoService( - private val mongoTemplate: ReactiveMongoTemplate, + private val mongoTemplate: MongoTemplate, ) { fun updateEvInfoToSnuttIds(snuttIds: List, evInfo: LectureRatingDao?) = - mongoTemplate.updateMulti( - Query(Criteria.where("_id").`in`(snuttIds)), - Update().set("evInfo.evId", evInfo?.id) - .set("evInfo.avgRating", evInfo?.avgRating) - .set("evInfo.count", evInfo?.count), - "lectures", - ).subscribe() + CoroutineScope(Dispatchers.IO).launch { + runCatching { + mongoTemplate.updateMulti( + Query(Criteria.where("_id").`in`(snuttIds)), + Update().set("evInfo.evId", evInfo?.id) + .set("evInfo.avgRating", evInfo?.avgRating) + .set("evInfo.count", evInfo?.count), + "lectures", + ) + } + } }