ข้ามไปที่เนื้อหาหลัก

เรื่องที่แนะนำ

คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025)

 คู่มือ Java ฉบับทันสมัย (อัปเดตล่าสุดปี 2025) บทนำ Java ยังคงเป็นภาษายอดนิยมที่ได้รับความนิยมอย่างต่อเนื่องตั้งแต่ยุค 1990 จนถึงปัจจุบัน ในปี 2025 Java ได้ก้าวหน้าอย่างมากทั้งด้านภาษาหลักและเครื่องมือสนับสนุน ล่าสุด Java 24 ได้เปิดตัวออกมาแล้ว และ Java 21 เป็นเวอร์ชัน LTS (Long-Term Support) ที่แนะนำให้ใช้งานสำหรับระบบจริงในระยะยาว บทความนี้จะช่วยให้คุณเข้าใจภาพรวมของ Java เวอร์ชันล่าสุด รวมถึงฟีเจอร์เด่น โครงสร้างภาษาที่ควรรู้ และแนวทางการพัฒนา Java ยุคใหม่ ภาพรวมเวอร์ชัน Java ล่าสุด เวอร์ชัน สถานะ วันเปิดตัว Java 24 เวอร์ชันล่าสุด มีนาคม 2025 Java 21 เวอร์ชัน LTS ล่าสุด กันยายน 2023 Java 17 LTS รุ่นก่อนหน้า กันยายน 2021 Java 11 LTS เก่า กันยายน 2018 โครงสร้างพื้นฐานของภาษา Java คลาสและอ็อบเจกต์ : โครงสร้างหลักของโปรแกรม Java Primitive Types : int, double, char, boolean เป็นต้น Control Statements : if, switch, while, for, do-while Methods : การแยกโค้ดเป็นหน่วยที่นำกลับมาใช้ซ้ำได้ Array และ Collection : จัดเก็บและจัดการข้อมูลหลายรายการ Exception Handling : try-catch-finally OOP Co...

สอนสร้าง Cron Jobs ด้วย Spring Boot

Cron Jobs คือเครื่องมือที่ช่วยให้สามารถกำหนดตารางเวลาสำหรับการทำงานของระบบได้ โดยใน Spring Boot เราสามารถใช้ความสามารถของ @Scheduledจาก Spring Framework เพื่อจัดการงานที่ต้องการรันตามเวลาที่กำหนดได้ง่าย ๆ 

ขั้นตอนการสร้าง Cron Jobs ใน Spring Boot

1. เพิ่ม Dependency

ใน pom.xml ของโปรเจกต์ Spring Boot ให้ตรวจสอบว่ามี dependency ดังต่อไปนี้ 

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

2. เปิดใช้งาน Scheduled Tasks

เพิ่มคำสั่ง @EnableScheduling ในคลาสหลักของโปรเจกต์ 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class CronJobApplication {
    public static void main(String[] args) {
        SpringApplication.run(CronJobApplication.class, args);
    }
}

3. สร้าง Scheduled Task

สร้างคลาสใหม่สำหรับการตั้งค่า Cron Job และกำหนดตารางเวลาโดยใช้คำสั่ง @Scheduled

import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

@Component
public class TaskScheduler {

    // รันทุก ๆ 5 วินาที
    @Scheduled(fixedRate = 5000)
    public void fixedRateTask() {
        System.out.println("Fixed rate task - " + System.currentTimeMillis() / 1000);
    }

    // รันทุก ๆ 5 วินาที (หลังจากทำงานเสร็จ)
    @Scheduled(fixedDelay = 5000)
    public void fixedDelayTask() {
        System.out.println("Fixed delay task - " + System.currentTimeMillis() / 1000);
    }

    // ใช้ cron expression เพื่อกำหนดเวลา
    @Scheduled(cron = "0 0/1 * * * ?") // รันทุก ๆ นาที
    public void cronTask() {
        System.out.println("Cron task - " + System.currentTimeMillis() / 1000);
    }
}

4. การใช้ Cron Expression

Cron Expression มีรูปแบบดังนี้: 

Seconds Minutes Hours DayOfMonth Month DayOfWeek Year (optional)

ตัวอย่าง: 

  • 0 0/5 * * * ? : รันทุก ๆ 5 นาที 
  • 0 0 12 * * ? : รันทุก ๆ เที่ยงวัน 
  • 0 15 10 * * ? : รันเวลา 10:15 ของทุกวัน 

5. การปรับแต่ง Task

  • ใช้ fixedRate เมื่อต้องการรันงานตามช่วงเวลาที่แน่นอนโดยไม่สนใจเวลาที่งานใช้เสร็จ 
  • ใช้ fixedDelay เมื่อต้องการรันงานหลังจากงานก่อนหน้าทำเสร็จแล้ว 

ตัวอย่างไฟล์ application.properties

หากต้องการเปลี่ยนโซนเวลา (timezone) หรือปรับแต่ง Scheduler: 

spring.task.scheduling.pool.size=10
spring.task.scheduling.thread-name-prefix=Scheduler-
spring.main.time-zone=Asia/Bangkok

สรุป

การสร้าง Cron Jobs ใน Spring Boot ง่ายและสะดวกมาก ด้วย @Scheduled ที่ช่วยกำหนดเวลาทำงานได้หลากหลายรูปแบบ หากต้องการงานที่มีประสิทธิภาพมากขึ้นสามารถเพิ่ม thread pool หรือปรับแต่งค่าใน application.propertiesได้ตามความต้องการ

ความคิดเห็น

บทความที่ได้รับความนิยม