From 5a2a21d3a36a6552f13c29a8213846e114d7765f Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 25 Jul 2024 10:16:11 +0700 Subject: [PATCH] Update service migrasi pasien Pembuatan scheduler status migrasi sebelum ekstraksi --- .../controller/MigrasiPasienController.java | 2 +- .../task/schedule/MigrasiPasienTask.java | 30 +++++++++++++++++++ .../schedule/config/ScheduleTaskConfig.java | 26 ++++++++++++++++ .../service/MigrasiPasienService.java | 2 +- .../impl/MigrasiPasienServiceImpl.java | 2 +- 5 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/MigrasiPasienTask.java create mode 100644 jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java diff --git a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java index ac41d2d8..75a380e3 100644 --- a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java +++ b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java @@ -27,7 +27,7 @@ public class MigrasiPasienController { @RequestMapping(value = "/init", method = GET, produces = APPLICATION_JSON_VALUE) public ResponseEntity initiateMigrasiPasien() { - migrasiPasienService.init(); + migrasiPasienService.newMigrate(); return new ResponseEntity<>(null, HttpStatus.OK); } diff --git a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/MigrasiPasienTask.java b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/MigrasiPasienTask.java new file mode 100644 index 00000000..84eeb584 --- /dev/null +++ b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/MigrasiPasienTask.java @@ -0,0 +1,30 @@ +package com.jasamedika.medifirst2000.task.schedule; + +import com.jasamedika.medifirst2000.service.MigrasiPasienService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDateTime; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 11/10/2023 + */ +@Component +public class MigrasiPasienTask { + private static final Logger LOGGER = LoggerFactory.getLogger(MigrasiPasienTask.class); + + @Autowired + private MigrasiPasienService migrasiPasienService; + + @Scheduled(cron = "0 0/15 * * * ?") + public void newMigrate() { + LOGGER.info("Task MigrasiPasienTask.newMigrate {}", LocalDateTime.now()); + + migrasiPasienService.newMigrate(); + } +} diff --git a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java new file mode 100644 index 00000000..21c8e901 --- /dev/null +++ b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/task/schedule/config/ScheduleTaskConfig.java @@ -0,0 +1,26 @@ +package com.jasamedika.medifirst2000.task.schedule.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.TaskScheduler; +import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; + +/** + * @author Salman + * @since 12 Jul 2023 + */ +@Configuration +@EnableScheduling +@ComponentScan("com.jasamedika.medifirst2000.task") +public class ScheduleTaskConfig { + + @Bean + public TaskScheduler taskScheduler() { + ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); + threadPoolTaskScheduler.setPoolSize(50); + threadPoolTaskScheduler.setThreadNamePrefix("BridgingThreadPoolTaskScheduler"); + return threadPoolTaskScheduler; + } +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MigrasiPasienService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MigrasiPasienService.java index 22071448..003ae49a 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MigrasiPasienService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/MigrasiPasienService.java @@ -10,7 +10,7 @@ import java.util.List; * @since 06/11/2023 */ public interface MigrasiPasienService { - void init(); + void newMigrate(); List extractAndTransform(); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java index b5ccfb53..63bf9d75 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java @@ -54,7 +54,7 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { private AsuransiPasienDao asuransiPasienDao; @Override - public void init() { + public void newMigrate() { List models = new ArrayList<>(); List oneHundredPasien = pasienDao.find100LatestByNotMigrateYet(); List oneHundredIdPasien = oneHundredPasien.stream().map(Pasien::getId).collect(Collectors.toList());