BoringtecVN

Tự động phục hồi & Circuit Breaker

Auto-Restart (Tự động khởi động lại)

Khi tính năng Auto-Restart được kích hoạt, WinWraper sẽ tự động bật lại dịch vụ ngay khi nó bị dừng bất ngờ (bị lỗi, tắt đột ngột...). Bạn hoàn toàn không cần can thiệp thủ công.

Bật/Tắt Auto-Restart nhanh chóng

Trong danh sách dịch vụ chính, mỗi dòng có một nút gạt bật/tắt trực tiếp tại cột Auto-Restart (hoặc bạn có thể nhấp chuột phải chọn từ menu ngữ cảnh). Trạng thái này sẽ được lưu lại, lần sau bạn mở phần mềm vẫn sẽ được tự động áp dụng.

⏱ Cơ chế chờ thông minh (Exponential Backoff)

Để bảo vệ máy tính của bạn không bị đơ hoặc giật lag do một dịch vụ bị lỗi liên tục và khởi chạy lại dồn dập, WinWraper áp dụng thuật toán chờ thông minh:

  • Lần crash đầu tiên, phần mềm sẽ chờ 3 giây trước khi khởi động lại.
  • Nếu dịch vụ tiếp tục bị crash ngay sau đó, thời gian chờ này sẽ tự động nhân đôi lên ở các lần tiếp theo (3s → 6s → 12s → 24s...).
  • Thời gian chờ tối đa được giới hạn ở mức 60 giây để đảm bảo an toàn cho CPU và RAM của bạn.

Rapid Exit Detection (Phát hiện dịch vụ tắt quá nhanh)

Nếu một dịch vụ tắt quá nhanh ngay sau khi vừa mở (cụ thể là tắt trong vòng 5 giây đầu, lặp lại liên tiếp 3 lần), WinWraper sẽ nhận diện đây là lỗi cấu hình nghiêm trọng (như sai đường dẫn, thiếu runtime, hoặc lỗi cú pháp trong code) chứ không phải lỗi crash thông thường.

Khi phát hiện sự kiện này, WinWraper sẽ:

  1. Khóa tạm thời việc tự động khởi động lại để tránh làm tốn tài nguyên máy tính.
  2. Hiển thị một hộp thoại cảnh báo trực quan chứa mã lỗi của Windows kèm 20 dòng nhật ký lỗi cuối cùng (stderr). Bạn có thể đọc trực tiếp nguyên nhân lỗi tại đây mà không cần đi tìm file log.

Các nguyên nhân phổ biến:

  • Bạn chọn sai file script khởi chạy chính.
  • Dự án của bạn thiếu các gói thư viện đi kèm.
  • Phiên bản code vừa cập nhật bị lỗi cú pháp.

Circuit Breaker (Cơ chế ngắt tự động)

Tương tự như chiếc cầu chì tự ngắt trong gia đình để bảo vệ mạng lưới điện, Circuit Breaker của WinWraper sẽ tự động ngắt hoàn toàn vòng lặp khởi động lại nếu dịch vụ bị lỗi quá nhiều lần trong thời gian ngắn.

DEMO TỰ ĐỘNGVòng đời crash → tự khởi động lại → Circuit Open

my-backend

node index.js

Crash0/5
● Đang chạy

Diễn biến

Tại sao tính năng này cực kỳ quan trọng?

Nếu không có Circuit Breaker, một dịch vụ bị lỗi nghiêm trọng sẽ liên tục khởi động lại vô tận:

  • Khiến CPU máy tính luôn ở trạng thái 100%, gây đơ lag toàn bộ máy.
  • Ghi đè file log khổng lồ làm đầy ổ cứng của bạn.

Khi nào Circuit Breaker được kích hoạt?

  • Khi dịch vụ bị crash 5 lần liên tiếp trong vòng 60 giây.
  • Ở lần crash thứ 5, WinWraper sẽ ngắt kết nối tự động, trạng thái dịch vụ chuyển sang màu tím mờ với nhãn ⛔ Mất kết nối (hoặc ⛔ Circuit Open ở chế độ Tiếng Anh).

ℹ️Ghi chú

Giải nghĩa nhãn "⛔ Mất kết nối": Nhãn này được dùng để thông báo "Dịch vụ đã bị phần mềm ngắt kết nối hoàn toàn khỏi cơ chế tự khởi động lại tự động để bảo vệ máy tính". Nhãn này hoàn toàn không liên quan đến kết nối mạng internet hay Wi-Fi trên máy tính của bạn.

Cách khôi phục (Reset) sau khi bị ngắt

  1. Mở Service Watcher (nút hình con mắt 👁) để đọc nguyên nhân lỗi crash cuối cùng và sửa lỗi trong code của bạn.
  2. Sau khi đã sửa xong lỗi, nhấp chuột phải vào dịch vụ đó → chọn ↺ Restart.
  3. Dịch vụ sẽ được khởi động lại bình thường và bộ đếm lỗi của Circuit Breaker được reset về 0.

Theo dõi số lần bị lỗi (Crashes)

Trong bảng danh sách chính, cột Crash sẽ hiển thị số liệu theo dạng:

  • Số lần crash của phiên chạy hiện tại / Tổng số lần crash từ trước đến nay

Ví dụ: 2/15 có nghĩa là kể từ khi bạn bấm Start lần này dịch vụ đã bị lỗi 2 lần, và tổng số lần lỗi tích lũy từ khi thêm vào app là 15 lần.


Tiếp theo: Giám sát CPU / RAM →