This commit is contained in:
2026-06-12 13:11:23 +09:00
parent affad2743e
commit 3fd9e3d833
3 changed files with 33 additions and 30 deletions
+24 -23
View File
@@ -6,7 +6,7 @@ import java.time.ZoneId
object MarketUtil {
private var isHolidayCached: Boolean? = null // 하루 한 번만 체크하기 위한 캐시
var holiDays = hashMapOf<String, Boolean>()
var canTradeDays = hashMapOf<String, Boolean>()
suspend fun canTradeToday(): Boolean {
val seoulZone = java.time.ZoneId.of("Asia/Seoul")
val now = java.time.ZonedDateTime.now(seoulZone)
@@ -16,28 +16,29 @@ object MarketUtil {
val dayOfWeek = now.dayOfWeek.value
if (dayOfWeek >= 6) return false
// 1. 주말 체크 (토, 일)
try {
if (holiDays.contains(todayStr)) {
println("📂 [DB Cache] 오늘($todayStr)의 휴장 여부를 DB에서 로드했습니다: ${if(holiDays.get(todayStr) == true) "휴장" else "영업일"}")
return holiDays.get(todayStr) == false
}
} catch (e: Exception) {e.printStackTrace()}
// 3. DB에 없으면 API 호출
return try {
val result = KisTradeService.fetchIsHoliday(todayStr)
val isHoliday = result.getOrDefault(true)
// 결과를 DB에 저장하여 다음 실행 시 재사용
holiDays.put(todayStr, isHoliday)
println("🌐 [API Call] 오늘($todayStr)의 휴장 여부를 새로 조회하여 DB에 저장했습니다.")
isHoliday
} catch (e: Exception) {
e.printStackTrace()
false
}
return true
// try {
// if (canTradeDays.contains(todayStr)) {
// println("📂 [DB Cache] 오늘($todayStr)의 휴장 여부를 DB에서 로드했습니다: ${if(canTradeDays.get(todayStr) == false) "휴장" else "영업일"}")
// return canTradeDays.get(todayStr) == true
// }
// } catch (e: Exception) {e.printStackTrace()}
//
//
// // 3. DB에 없으면 API 호출
// return try {
// val result = KisTradeService.fetchIsHoliday(todayStr)
// val canTrade = result.getOrDefault(false)
//
// // 결과를 DB에 저장하여 다음 실행 시 재사용
// canTradeDays.put(todayStr, canTrade)
//
// println("🌐 [API Call] 오늘($todayStr)의 휴장 여부를 새로 조회하여 DB에 저장했습니다. ${if(canTradeDays.get(todayStr) == false) "휴장" else "영업일"}" )
// canTrade
// } catch (e: Exception) {
// e.printStackTrace()
// false
// }
}
fun isKoreanMarketOpen(): Boolean {