Job

Monitor job

Hướng dẫn theo dõi trạng thái, tiến trình và kết quả thực thi của Job.

Theo dõi các lần chạy

Mở trang chi tiết job và chọn tab Run. Bảng lịch sử chạy thường hiển thị:

  • Run ID: mã định danh của lần chạy.
  • Run type: scheduled nếu chạy theo lịch hoặc loại chạy tương ứng.
  • Status: trạng thái thực thi, ví dụ Success, Failed hoặc đang xử lý.
  • Duration: thời lượng chạy.
  • Start date: thời điểm bắt đầu.

Nhấn Refresh để cập nhật dữ liệu. Chọn một Run ID để xem thông tin chi tiết của lần chạy.

Xem trạng thái job run

Trong chi tiết một Job Run, kiểm tra trạng thái tổng thể của Job Run để biết job đang chờ, đang chạy, tạm dừng, thành công hay thất bại.

Các trạng thái của Job/Run:

StatusÝ nghĩaMô tả
QueuedĐang chờ chạyJob đã được tạo và đang chờ tài nguyên hoặc chờ đến lượt thực thi.
RunningĐang chạyJob đang được hệ thống thực thi.
PausedTạm dừngJob hoặc lịch chạy đã được tạm dừng. Hệ thống sẽ không khởi tạo các lần chạy mới cho đến khi được tiếp tục.
SuccessThành côngJob đã hoàn thành thành công và tất cả các tác vụ được thực thi đúng như mong đợi.
FailedThất bạiJob kết thúc do xảy ra lỗi trong quá trình thực thi.

Luồng thay đổi status của Job/Run

  1. Job được kích hoạt theo lịch hoặc bằng Run Now và chuyển sang Queued khi đang chờ tài nguyên hoặc lượt thực thi.
  2. Khi hệ thống bắt đầu thực thi, status chuyển sang Running.
  3. Nếu tất cả task hoàn tất thành công, Job/Run chuyển sang Success.
  4. Nếu một task hoặc bước xử lý không thể hoàn tất, Job/Run chuyển sang Failed.
  5. Nếu job hoặc lịch chạy bị tạm dừng trước khi tạo Run mới, job chuyển sang Paused. Khi được kích hoạt lại, job có thể tiếp tục nhận các lần chạy theo lịch.

Luồng thông thường: Queued -> Running -> Success hoặc Failed. Paused là trạng thái quản lý job/lịch và không phải là kết quả thành công hay thất bại của một task.

Sơ đồ luồng Job/Run:

flowchart LR
  A[Trigger theo lịch hoặc Run Now] --> B[Queued]
  B --> C[Running]
  C --> D{Kết quả thực thi}
  D -->|Tất cả task thành công| E[Success]
  D -->|Có task hoặc bước xử lý lỗi| F[Failed]
  P[Pause job hoặc lịch chạy] --> G[Paused]
  G -->|Activate| A

Xem trạng thái task

Mỗi task trong một Run được tạo thành một Task Instance. Task Instance là một lần thực thi cụ thể của task và có status riêng, giúp xác định task đang ở giai đoạn nào trong vòng đời.

Các trạng thái của Task Instance:

StatusÝ nghĩaMô tả
noneChưa sẵn sàngDependency của task chưa đáp ứng nên task chưa được đưa vào hàng đợi.
scheduledĐã lập lịchScheduler xác định task đủ điều kiện để chạy.
queuedĐang chờ workerTask đã được gán cho Executor và đang chờ worker.
runningĐang chạyTask đang được thực thi.
successThành côngTask hoàn tất không có lỗi.
restartingĐang khởi động lạiTask đang chạy và được yêu cầu khởi động lại.
failedThất bạiTask gặp lỗi khi thực thi.
skippedĐã bỏ quaTask bị bỏ qua do branching hoặc điều kiện tương tự.
upstream_failedTask trước thất bạiTask không chạy vì task tiền nhiệm thất bại.
up_for_retryChờ thử lạiTask thất bại nhưng vẫn còn lượt retry.
up_for_rescheduleChờ lập lịch lạiSensor đang chờ lần kiểm tra tiếp theo.
deferredĐã trì hoãnTask đang chờ trigger hoặc điều kiện tiếp theo.
awaiting_inputChờ người dùng nhậpTask đang chờ phản hồi của người dùng.
removedĐã bị xóaTask không còn trong cấu hình job khi Run bắt đầu.

Luồng thay đổi status của Task Instance

  1. none: Task Instance được tạo nhưng chưa đủ điều kiện chạy, thường do đang chờ dependency.
  2. scheduled: Scheduler xác nhận dependency đã đáp ứng và đưa task vào kế hoạch thực thi.
  3. queued: Task được chuyển cho Executor và chờ worker hoặc tài nguyên Compute.
  4. running: Worker bắt đầu thực thi task.
  5. Khi task hoàn tất không có lỗi, status chuyển sang success.
  6. Nếu task phát sinh lỗi và còn lượt thử lại, status chuyển sang up_for_retry, sau đó quay lại scheduled khi được lập lịch lại.
  7. Nếu hết lượt retry hoặc lỗi không được phép thử lại, status chuyển sang failed.
  8. Nếu dependency không đạt trigger rule, task chuyển sang upstream_failed; nếu logic điều kiện yêu cầu bỏ qua, task chuyển sang skipped.
  9. Sensor có thể chuyển sang up_for_reschedule để chờ lần kiểm tra tiếp theo. Task chờ sự kiện bên ngoài có thể ở deferred, còn task cần phản hồi người dùng ở awaiting_input.
  10. Task đang chạy có thể chuyển sang restarting khi có yêu cầu khởi động lại từ bên ngoài. Task đã bị xóa khỏi cấu hình sau khi Run bắt đầu sẽ ở removed.

Các nhánh thường gặp:

  • Thành công: none -> scheduled -> queued -> running -> success.
  • Thử lại: running -> up_for_retry -> scheduled -> queued -> running.
  • Thất bại: running -> failed.
  • Dependency thất bại: task tiền nhiệm -> failed, task phụ thuộc -> upstream_failed.

Sơ đồ vòng đời Task Instance:

stateDiagram-v2
  [*] --> none: Task Instance được tạo
  none --> none: Chờ dependency
  none --> scheduled: Dependency đáp ứng
  scheduled --> queued: Executor tiếp nhận
  queued --> running: Worker bắt đầu chạy
  running --> success: Hoàn tất không lỗi
  running --> up_for_retry: Lỗi, còn lượt retry
  up_for_retry --> scheduled: Đến lượt thử lại
  running --> failed: Lỗi, hết retry
  running --> restarting: Yêu cầu khởi động lại
  restarting --> scheduled: Lập lịch lại
  none --> upstream_failed: Task tiền nhiệm thất bại
  none --> skipped: Không cần thực thi
  scheduled --> up_for_reschedule: Sensor chờ kiểm tra lại
  scheduled --> deferred: Chờ trigger hoặc sự kiện
  scheduled --> awaiting_input: Chờ phản hồi người dùng
  none --> removed: Task bị xóa khỏi job
  success --> [*]
  failed --> [*]
  skipped --> [*]
  upstream_failed --> [*]

Trong sơ đồ, các trạng thái up_for_reschedule, deferred và awaiting_input là các nhánh chờ đặc biệt; task sẽ tiếp tục khi điều kiện tương ứng được đáp ứng. Trạng thái removed xảy ra khi task không còn trong cấu hình job sau khi Run đã bắt đầu.

Xem logs

Tại vùng chi tiết task, chọn tab Logs để xem log thực thi:

  1. Chọn All Log Levels để lọc theo mức log như INFO hoặc ERROR.
  2. Chọn All Sources để lọc theo thành phần sinh log.
  3. Dùng menu tùy chọn để refresh log hoặc bật/tắt line wrapping.
  4. Đọc các dòng ERROR và phần exception ở cuối log để xác định nguyên nhân.

Khi cần xem bản ghi mới nhất, nhấn Refresh logs.

Xem Details

Chọn tab Details để xem thông tin cơ bản của task và Run, gồm:

  • Task ID và Run ID.
  • Status.
  • Start date và End date.
  • Duration.

Đối chiếu thời gian và trạng thái giữa task, Run và job để xác định phạm vi lỗi.

Xử lý lần chạy thất bại

Khi Run có trạng thái Failed:

  1. Mở Run thất bại từ bảng lịch sử.
  2. Xem task chuyển sang trạng thái Failed.
  3. Mở Logs, lọc ERROR và xác định exception.
  4. Kiểm tra Compute, đường dẫn source, thư viện, biến môi trường và tham số của task.
  5. Sửa cấu hình nếu cần.
  6. Nhấn Run Now để chạy lại sau khi đã xử lý nguyên nhân.

Cần phân biệt chạy lại theo lịch với chạy thủ công và kiểm tra tác động của việc chạy lại đối với dữ liệu hoặc tài nguyên đích.

logo
CMC Telecom
Aspire to Inspire the Digital World