Java의 크론 작업

Muhammad Zeeshan 2023년10월12일
  1. 크론 작업이란 무엇입니까
  2. Java에서 Cron 작업 만들기
Java의 크론 작업

이 자습서에서는 Java를 사용하여 Cron 작업을 만드는 방법을 살펴봅니다. 그러나 시작하기 전에 Cron 또는 Cron 작업을 살펴보겠습니다.

크론 작업이란 무엇입니까

Cron은 작업 일정에 일반적으로 사용되는 응용 프로그램입니다. Unix와 유사한 운영 체제에서 액세스할 수 있으며 그곳에서 다운로드할 수 있습니다.

경우에 따라 특정 프로그램이나 스크립트를 실행해야 할 수도 있습니다. 이러한 프로그램 또는 스크립트는 Cron 작업으로 추가되며 이 작업을 수행해야 하는 시기를 설명하도록 일정이 설정됩니다.

  1. 예를 들어 Cron을 사용하여 데이터 데이터베이스 시스템 또는 정보 저장, 자동 변경으로 구조 재구축, 디스크 공간 사용 평가, 메시지 전달 등과 같은 프로그램을 실행할 수 있습니다. Cron은 이메일을 보내는 데 사용될 수도 있습니다.
  2. 즉, Cron 표현식의 목적은 예약된 작업을 수행해야 하는 날짜와 시간을 설명하는 것입니다.

Java에서 Cron 작업 만들기

Java에서 Cron 작업을 만드는 작업은 여러 가지 방법으로 수행할 수 있습니다. 여기에서는 Java의 Timer Task에 대해 설명합니다.

타이머 작업 클래스 사용

특정 간격으로 한 번 또는 반복적으로 실행되도록 타이머에 작업을 할당할 수 있습니다. 다음 라이브러리를 프로젝트로 가져오면 TimerTask를 사용할 수 있습니다.

import java.util.TimerTask;

TimerTask 기능이 어떻게 작동하는지 더 잘 이해하기 위해 다음 예를 살펴보겠습니다.

  1. 먼저 TimerTask 클래스를 확장하는 MyTask라는 클래스를 구성합니다. 이것은 작업 로직이 작성되는 지점입니다.

    class MyTask extends TimerTask {
      public MyTask() {}
      @Override
      public void run() {
        System.out.println("Hello, folks");
      }
    }
    
  1. 이제 TimerTask를 사용하기 위해 Main() 클래스를 빌드합니다.

    public class Main {}
    
  2. Timer() 클래스 개체의 인스턴스를 만들고 아래에서 timer라고 이름을 지정합니다.

    Timer timer = new Timer();
    
  3. 그런 다음 MyTask 클래스의 인스턴스를 구성하고 shaniitask라는 이름을 지정합니다.

    MyTask shaniitask = new MyTask();
    
  4. 마지막으로 scheduleAtFixedRate 기능을 사용하고 작업 shaniitask의 이름과 매번 실행해야 하는 활동 시간(초)을 제공하여 작업을 예약합니다. 다음 활동은 일정에서 40초마다 반복되도록 설정됩니다.

    timer.scheduleAtFixedRate(shaniitask, 0, 40000);
    

전체 소스 코드:

MyTask.java:

class MyTask extends TimerTask {
  public MyTask() {}
  @Override
  public void run() {
    System.out.println("Hello, folks");
  }
}

메인.자바:

public class Main {
  public static void main(String[] args) {
    Timer timer = new Timer();
    MyTask shaniitask = new MyTask();
    timer.scheduleAtFixedRate(shaniitask, 0, 40000);
  }
}

출력:

Hello, folks
Hello, folks
Hello, folks
...
Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn