Skip to content

meengi07/RestScheduled

Repository files navigation

RestScheduled

프로젝트 설명

RestScheduled는 Spring 기반 애플리케이션에서 커스텀 스케줄링 기능을 제공하는 라이브러리입니다. 이 라이브러리는 @RestScheduled 어노테이션을 사용하여 작업을 주기적으로 실행하고, SchedulerManager를 통해 작업을 동적으로 관리할 수 있는 기능을 제공합니다.

주요 기능:

  • @RestScheduled 어노테이션을 사용하여 메서드를 간단히 스케줄링
  • SchedulerManager를 통해 작업을 시작, 중지, 재시작 등의 관리 가능
  • 커스텀 스케줄러 설정 가능

설치 방법

Maven 또는 Gradle을 사용하여 라이브러리를 프로젝트에 추가할 수 있습니다.

Maven

<dependency>
  <groupId>com.example</groupId>
  <artifactId>rest-scheduled</artifactId>
  <version>1.0.0</version>
</dependency>

Gradle

implementation 'com.example:rest-scheduled:1.0.0'

실행 방법

  1. 라이브러리 의존성 추가: 위의 설치 방법에 따라 라이브러리를 프로젝트에 추가합니다.

  2. 스케줄링 활성화: 애플리케이션에서 @EnableScheduling 어노테이션을 추가하여 스케줄링을 활성화합니다.

    import org.springframework.context.annotation.Configuration;
    import org.springframework.scheduling.annotation.EnableScheduling;
    
    @Configuration
    @EnableScheduling
    public class AppConfig {
    } 
  3. 스케줄링할 메서드 정의: @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");
        }
    }
  4. 애플리케이션 실행: 애플리케이션을 실행하면 executeTask 메서드가 5초마다 실행됩니다.

설정 방법

  1. 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;
        }
    }

  2. 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 라이선스를 확인해 주세요.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages