[java] Quartz Scheduler와 HTTP 요청 보내기

먼저, Quartz Scheduler를 사용하기 위해 다음과 같이 종속성을 추가해야 합니다.

<dependency>
  <groupId>org.quartz-scheduler</groupId>
  <artifactId>quartz</artifactId>
  <version>2.3.2</version>
</dependency>

다음으로, Quartz Scheduler를 설정하기 위해 스케줄러 객체를 생성하고 Job 클래스를 정의해야 합니다. Job 클래스는 실행될 작업을 정의하며, execute() 메서드 안에 작업 내용을 작성합니다. HTTP 요청을 보내기 위해서는 Java의 URLConnection 또는 HttpClient와 같은 라이브러리를 사용할 수 있습니다.

다음은 예제 코드입니다.

import org.quartz.*;
import java.net.URL;
import java.net.HttpURLConnection;

public class HttpRequestJob implements Job {
  @Override
  public void execute(JobExecutionContext context) throws JobExecutionException {
    try {
      // HTTP 요청 보내기
      URL url = new URL("http://example.com");
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
      connection.setRequestMethod("GET");
      int responseCode = connection.getResponseCode();

      // 응답 확인
      if (responseCode == HttpURLConnection.HTTP_OK) {
        // 요청 성공
        System.out.println("HTTP 요청 성공");
      } else {
        // 요청 실패
        System.out.println("HTTP 요청 실패");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public static void main(String[] args) throws SchedulerException {
    // 스케줄러 객체 생성
    Scheduler scheduler = new StdSchedulerFactory().getScheduler();

    // JobDetail 생성
    JobDetail job = JobBuilder.newJob(HttpRequestJob.class)
            .withIdentity("httpRequestJob", "group1")
            .build();

    // Trigger 생성
    Trigger trigger = TriggerBuilder.newTrigger()
            .withIdentity("httpRequestTrigger", "group1")
            .startNow()
            .withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(10))
            .build();

    // 스케줄러에 Job과 Trigger 등록
    scheduler.scheduleJob(job, trigger);

    // 스케줄러 시작
    scheduler.start();
  }
}

위의 코드에서는 execute() 메서드에서 주어진 URL로 GET 요청을 보내고, 응답 코드를 확인하여 요청의 성공 여부를 출력합니다.

main() 메서드에서는 스케줄러 객체를 생성하고, JobDetail과 Trigger를 생성하여 스케줄러에 등록합니다. 이 예제에서는 10초마다 HttpRequestJob이 실행되도록 설정되어 있습니다.

Quartz Scheduler는 복잡한 스케줄링 작업을 다루는 강력한 도구입니다. 더 많은 설정과 기능을 사용하려면 Quartz 공식 문서를 참조하시기 바랍니다.