RestScheduled는 Spring 기반 애플리케이션에서 커스텀 스케줄링 기능을 제공하는 라이브러리입니다. 이 라이브러리는 @RestScheduled
어노테이션을 사용하여 작업을 주기적으로 실행하고, SchedulerManager
를 통해 작업을 동적으로 관리할 수 있는 기능을 제공합니다.
@RestScheduled
어노테이션을 사용하여 메서드를 간단히 스케줄링SchedulerManager
를 통해 작업을 시작, 중지, 재시작 등의 관리 가능- 커스텀 스케줄러 설정 가능
Maven 또는 Gradle을 사용하여 라이브러리를 프로젝트에 추가할 수 있습니다.
<dependency>
<groupId>com.example</groupId>
<artifactId>rest-scheduled</artifactId>
<version>1.0.0</version>
</dependency>
implementation 'com.example:rest-scheduled:1.0.0'
-
라이브러리 의존성 추가: 위의 설치 방법에 따라 라이브러리를 프로젝트에 추가합니다.
-
스케줄링 활성화: 애플리케이션에서 @EnableScheduling 어노테이션을 추가하여 스케줄링을 활성화합니다.
import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; @Configuration @EnableScheduling public class AppConfig { }
-
스케줄링할 메서드 정의: @RestScheduled 어노테이션을 사용하여 스케줄링할 메서드를 정의합니다.
import com.example.restscheduled.RestScheduled; import org.springframework.stereotype.Component; @Component public class MyScheduledTasks { @RestScheduled(name = "myTask", cron = "0/5 * * * * *") public void executeTask() { System.out.println("This task runs every 5 seconds"); } }
-
애플리케이션 실행: 애플리케이션을 실행하면 executeTask 메서드가 5초마다 실행됩니다.
-
TaskScheduler 설정
사용자가 직접 TaskScheduler를 설정하여 스레드 풀 크기 등을 조정할 수 있습니다.import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; @Configuration public class CustomSchedulerConfig { @Bean public ThreadPoolTaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setPoolSize(10); // 스레드 풀 크기 설정 taskScheduler.setThreadNamePrefix("custom-scheduled-task-"); return taskScheduler; } }
-
SchedulerManager 사용
SchedulerManager를 사용하여 스케줄링된 작업을 제어할 수 있습니다.- 작업 중지
@Autowired private SchedulerManager schedulerManager; public void stopTask(String taskName) { schedulerManager.stopTask(taskName); }
- 작업 재시작
public void startTask(String taskName) { schedulerManager.startTask(taskName); }
- 작업 실행 여부 확인
public boolean isTaskRunning(String taskName) { return schedulerManager.isTaskRunning(taskName); }
이 프로젝트는 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.
MIT 라이선스는 다음과 같은 조건을 포함합니다:
- 저작권 표시와 라이선스 고지를 포함해야 합니다.
- 소스 코드나 바이너리를 재배포할 때는 동일한 라이선스 조건이 적용되어야 합니다.
- 소프트웨어는 "있는 그대로" 제공되며, 명시적인 보증이 없습니다.
자세한 라이선스 조건은 MIT 라이선스를 확인해 주세요.