# Giám sát Cron

Source: https://instatus.com/help/vi/monitoring/cron

Monitor cron cấp cho mỗi tác vụ theo lịch (sao lưu, xử lý theo lô hoặc script định kỳ) một URL duy nhất để ping, và cảnh báo cho bạn khi ping đến muộn hoặc bị thiếu. Tác vụ được đánh dấu giảm hiệu suất khi bỏ lỡ chu kỳ và gặp sự cố khi bỏ lỡ cả thời gian ân hạn.

Cũng như với [các monitor khác](https://instatus.com/help/vi/monitoring), khi một tác vụ cron thất bại, bạn có thể phối hợp với nhóm để [khắc phục sự cố](https://instatus.com/help/vi/incident-response) và tùy chọn cập nhật [trang trạng thái](https://instatus.com/help/vi/status-page) của mình.

| At a glance | Details |
| :-- | :-- |
| [Cách hoạt động](https://instatus.com/help/vi/monitoring/cron#loại-monitor) | Tác vụ ping một URL duy nhất mỗi lần chạy |
| [Chu kỳ](https://instatus.com/help/vi/monitoring/cron#monitor-thành-công-nếu) | Tần suất tác vụ cần chạy |
| [Thời gian ân hạn](https://instatus.com/help/vi/monitoring/cron#monitor-thành-công-nếu) | Thời gian thêm trước khi tác vụ trễ bị xem là gặp sự cố |
| [Ping muộn](https://instatus.com/help/vi/monitoring/cron#monitor-thành-công-nếu) | Giảm hiệu suất sau chu kỳ, gặp sự cố sau thời gian ân hạn |
| [Tín hiệu thất bại](https://instatus.com/help/vi/monitoring/cron#báo-hiệu-thất-bại) | Gửi yêu cầu tới URL có thêm /fail ở cuối |
| [Thời gian thực thi](https://instatus.com/help/vi/monitoring/cron#đo-thời-gian-thực-thi-tác-vụ) | Ping /start khi tác vụ bắt đầu, URL khi kết thúc |

Đây là ví dụ về danh sách monitor cron của bạn:

![Danh sách monitor cron](https://instatus.com/help/monitors/cron-list.png)

## Monitor cron làm gì?

- Xác minh rằng các tác vụ cron của bạn chạy đúng giờ (dựa trên các ping từ chính tác vụ).
- Nhận cảnh báo nếu một tác vụ chạy trễ hoặc không kết thúc.
- Tích hợp với Slack, email, SMS, cuộc gọi điện thoại và nhiều kênh khác để nhận cảnh báo.

Khi bạn nhấp vào một monitor cron, bạn sẽ thấy thêm chi tiết:

![Chi tiết monitor cron](https://instatus.com/help/monitors/cron-item.png)

## Làm sao để thêm một monitor cron?

Vào dự án của bạn → Monitor → Thêm monitor, chọn **Cron/Heartbeat**, rồi trỏ tác vụ của bạn tới URL được tạo và đặt chu kỳ cùng thời gian ân hạn.

![Thêm monitor](https://instatus.com/help/monitors/cron-add.png)

### Loại monitor

Chọn **Cron/Heartbeat** làm loại monitor.

![Loại monitor cron](https://instatus.com/help/monitors/type-cron.png)

Một URL riêng sẽ được tạo cho bạn. Tác vụ cron của bạn cần gửi một yêu cầu HTTP (`HEAD`, `GET` hoặc `POST`) đến URL này mỗi lần nó chạy.

### Monitor thành công nếu

Một monitor cron thành công khi tác vụ của bạn ping đến URL đã tạo đúng lịch. Bạn có thể cấu hình:

- **Chu kỳ:** Tần suất tác vụ cần chạy (ví dụ mỗi 15 phút).
- **Thời gian ân hạn:** Khoảng thời gian cho phép thêm trước khi tác vụ bị xem là gặp sự cố.

Nếu hết chu kỳ mà tác vụ không ping, monitor sẽ được đánh dấu là giảm hiệu suất.

Nếu hết thời gian ân hạn mà tác vụ vẫn không ping, monitor sẽ được đánh dấu là gặp sự cố.

Bạn có thể thiết lập [cảnh báo](https://instatus.com/help/vi/monitoring/alerts) để được thông báo khi một tác vụ thất bại, giảm hiệu suất hoặc phục hồi.

## Báo hiệu thất bại

Gửi một yêu cầu tới URL của monitor với `/fail` được thêm vào cuối để đánh dấu tác vụ là thất bại, ngay cả khi nó đã chạy và ping monitor.

Cách này hữu ích nếu script của bạn gặp lỗi và bạn muốn Instatus ghi nhận tác vụ là thất bại ngay lập tức.

- **Ping thành công**: `https://cron.instatus.com/your-unique-url`
- **Ping thất bại**: `https://cron.instatus.com/your-unique-url/fail`

Khi nhận được tín hiệu thất bại, monitor sẽ được đánh dấu là gặp sự cố, và cảnh báo sẽ được gửi ngay lập tức theo [cài đặt cảnh báo](https://instatus.com/help/vi/monitoring/alerts) của bạn.

## Đo thời gian thực thi tác vụ

Gửi hai yêu cầu, `/start` khi tác vụ bắt đầu và ping thành công hoặc thất bại khi kết thúc, Instatus sẽ ghi lại khoảng thời gian giữa hai lần đó làm thời gian thực thi của tác vụ:

1. **Tín hiệu bắt đầu**: Gửi một yêu cầu đến `/start` khi tác vụ của bạn bắt đầu
2. **Tín hiệu thành công/thất bại**: Gửi một yêu cầu đến URL gốc khi tác vụ hoàn tất hoặc thất bại

- **Ping bắt đầu**: `https://cron.instatus.com/your-unique-url/start`
- **Ping thành công**: `https://cron.instatus.com/your-unique-url`
- **Ping thất bại**: `https://cron.instatus.com/your-unique-url/fail`

Khoảng thời gian giữa tín hiệu bắt đầu và tín hiệu thành công sẽ được ghi lại làm thời gian thực thi của tác vụ. Điều này giúp bạn theo dõi hiệu suất và nhận diện những tác vụ chạy lâu hơn dự kiến.

Nếu tác vụ của bạn thất bại sau khi đã gửi tín hiệu bắt đầu, hãy gửi tín hiệu thất bại thay cho tín hiệu thành công để đánh dấu nó là thất bại mà vẫn ghi nhận được thời gian thực thi.

Chúc mừng, bạn đã thêm monitor cron đầu tiên của mình!

- [Monitor Ping](https://instatus.com/help/vi/monitoring/ping): Tìm hiểu cách giám sát các endpoint ping về thời gian hoạt động và hiệu suất
