Nhảy đến nội dung chính

TRANG 3: Phân tích Logic Đánh giá Cron Expression (JS Engine)

3.1. Tại sao cần JavaScript?

WSO2 MI mặc định không có hàm so sánh thời gian với biểu thức Cron phức tạp (như 0 0/15 * * * ?). Do đó, dự án sử dụng JavaScript (Nashorn Engine) để gọi trực tiếp các thư viện Java của Quarkz.

3.2. Chi tiết mã nguồn Evaluator

Tại EvaluateSingleTaskSequence.xml, hệ thống thực hiện các bước:

  1. Lấy cron_expression và last_run (chuỗi string) từ Database.
  2. Chuyển đổi last_run sang đối tượng Date của Java.
  3. Sử dụng class org.quartz.CronExpression để tính toán thời điểm chạy tiếp theo (nextRun).
  4. So sánh: Nếu nextRun nhỏ hơn hoặc bằng thời gian hiện tại (now), hệ thống xác định Task này đã đến hạn chạy (shouldRun = true).