Bỏ qua, đến nội dung

@digiforce-nc/plugin-workflow-delay

Plugin đăng ký node trì hoãn (delay) trong workflow, mở rộng plugin-workflow. Tạm dừng workflow trong khoảng thời gian cố định hoặc đến một thời điểm cụ thể trước khi tiếp tục.

Plugin này làm gì?

Node Delay tạm dừng luồng workflow trong một khoảng thời gian. Hỗ trợ hai chế độ: trì hoãn cố định (ví dụ: 5 phút) hoặc chờ đến thời điểm cụ thể (ví dụ: 9:00 sáng ngày mai). Sau khi hết thời gian, workflow tự động tiếp tục.

Delay job được lưu vào database - đảm bảo không bị mất khi server restart. Scheduler kiểm tra định kỳ và resume workflow đúng thời điểm.

Cấu hình

Tham sốKiểuMô tả
modestringduration (khoảng thời gian) hoặc datetime (thời điểm cụ thể)
durationnumberThời gian trì hoãn (dùng khi mode = duration)
unitstringĐơn vị: seconds, minutes, hours, days
datetimestringThời điểm đích (dùng khi mode = datetime)
endOnobjectBiến workflow chứa thời điểm đích (thay cho datetime cố định)

Input / Output

HướngDữ liệuMô tả
Inputduration / datetimeThời gian chờ hoặc thời điểm đích
InputcontextContext workflow được giữ nguyên qua delay
OutputresumedAtThời điểm thực tế workflow tiếp tục
OutputcontextContext workflow (không thay đổi)

Tính năng chính

#Tính năngChi tiết
1Fixed durationTrì hoãn khoảng thời gian cố định (giây, phút, giờ, ngày)
2Target datetimeChờ đến thời điểm cụ thể
3Dynamic datetimeLấy thời điểm đích từ biến workflow
4PersistentDelay được lưu vào DB, app restart không mất job
5Chính xácSử dụng scheduler đảm bảo trigger đúng thời điểm

Trường hợp sử dụng

#Kịch bảnMô tả
1Nhắc nhở sau X phútDelay 30 phút rồi gửi reminder nếu chưa xử lý
2Gửi email sáng maiDelay đến 9:00 ngày tiếp theo rồi gửi email tổng hợp
3Cooling periodDelay 24h trước khi xóa tài khoản vĩnh viễn
4Scheduled publishDelay đến thời điểm publish đã cấu hình trên bản ghi
5Retry với backoffDelay tăng dần (1s, 5s, 30s) giữa các lần retry

So sánh hai chế độ delay

Đặc điểmDurationDatetime
Tính từThời điểm node chạyThời điểm cố định
Ví dụ"sau 30 phút""lúc 9:00 ngày mai"
DynamicChỉ durationTừ biến workflow
Phù hợpReminder, retryScheduled tasks

Lưu ý quan trọng

  • Delay job lưu trong DB - restart server sẽ reschedule tất cả pending delays
  • Thời gian thực tế resume có thể trễ vài giây so với cấu hình (do polling interval)
  • Không nên dùng delay quá ngắn (dưới 1 giây) - dùng node khác thay thế
  • Mode datetime sử dụng timezone server, cẩn thận khi deploy multi-region
  • Workflow state (biến, context) được serialize và lưu DB, đảm bảo toàn vẹn qua delay

Dependencies

PackageVai trò
@digiforce-nc/plugin-workflowWorkflow engine (peer)
@digiforce-nc/serverServer framework (peer)
@digiforce-nc/databaseDatabase - lưu trữ delay job (peer)

Mục lục chi tiết