coroutine2 2. 비동기, 코루틴, 크론 탭 스케줄러 [kotlin / jsoup] 스케줄러를 만들때 사용한 async와 scheduled 어노테이션, 그리고 코루틴에 대해 알아봅시다. 목차 사용된 코드 @EnableScheduling @EnableAsync class ThreemovieapiApplication @Async @Scheduled(cron = "0 0/5 * * * ?") fun chkMovieShowingTime() { runBlocking { for (mbTheater in mbTheaters) { CoroutineScope(Dispatchers.IO).async { updateMBShowtimes(mbTheater) } .also { showTimeAsync.add(it) } } for (lcTheater in lcTheaters) { CoroutineScope(Di.. 2023. 6. 23. 크롤링에 batch update(bulk insert)와 coroutine으로 속도 올리기 [Kotlin + spring boot] 시간표 업데이트 시 8분이나 걸려 실시간 남은 좌석 수 확인에 대한 메리트가 없다고 판단했다. 데이터를 insert 하는데 2분, 시간표 데이터를 가져오는데 6분 30초 대략 9분 정도가 걸려 간혹 10분이 지나 업데이트 도중 다시 스케줄러가 실행되는 에러가 생겼다. 예전에 파이썬에서 사용했던 pool.map이 생각나 멀티쓰레딩이나 멀티프로세싱으로 크롤링을 진행하고 insert 삽입 시간을 줄이기 위한 방법을 찾아보았다. 목차 기존 코드 및 수행 시간 @Async @Scheduled(cron = "0 0/1 * * * ?") fun chkMovieShowingTime() { var time = lastUpdateTimeRepositorySupport.getLastTime(code) if (time == .. 2023. 5. 25. 이전 1 다음