Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh
Một tác vụ định kỳ là một sự kiện được kích hoạt dựa trên điều kiện thời gian, với hai chế độ chính:
Khi hệ thống đạt đến thời điểm (chính xác đến từng giây) thỏa mãn các điều kiện kích hoạt đã cấu hình, luồng công việc tương ứng sẽ được kích hoạt.
Trong danh sách luồng công việc, khi tạo một luồng công việc mới, hãy chọn loại "Tác vụ định kỳ":

Đối với chế độ thông thường, trước tiên bạn cần cấu hình thời gian bắt đầu là bất kỳ thời điểm nào (chính xác đến từng giây). Thời gian bắt đầu có thể là một thời điểm trong tương lai hoặc trong quá khứ. Khi cấu hình là thời điểm trong quá khứ, hệ thống sẽ kiểm tra xem đã đến lúc kích hoạt hay chưa dựa trên điều kiện lặp lại đã cấu hình. Nếu không có điều kiện lặp lại nào được cấu hình và thời gian bắt đầu là trong quá khứ, luồng công việc sẽ không còn được kích hoạt nữa.
Có hai cách để cấu hình quy tắc lặp lại:
Sau khi cấu hình quy tắc lặp lại, bạn cũng có thể cấu hình điều kiện kết thúc. Tác vụ có thể kết thúc vào một thời điểm cố định hoặc bị giới hạn bởi số lần đã thực thi.
Việc sử dụng trường thời gian của một bộ sưu tập để xác định thời gian bắt đầu là một chế độ kích hoạt kết hợp tác vụ định kỳ thông thường với trường thời gian của bộ sưu tập. Chế độ này có thể giúp đơn giản hóa các nút trong một số quy trình cụ thể và cũng trực quan hơn trong cấu hình. Ví dụ, để thay đổi trạng thái của các đơn hàng quá hạn chưa thanh toán thành đã hủy, bạn chỉ cần cấu hình một tác vụ định kỳ ở chế độ trường thời gian của bộ sưu tập, chọn thời gian bắt đầu là 30 phút sau khi đơn hàng được tạo.
Nếu điều kiện thời gian đã cấu hình được đáp ứng, nhưng toàn bộ dịch vụ ứng dụng NocoBase đang ở trạng thái không hoạt động hoặc bị tắt, thì tác vụ định kỳ đáng lẽ phải được kích hoạt vào thời điểm đó sẽ bị bỏ lỡ. Hơn nữa, sau khi dịch vụ được khởi động lại, các tác vụ đã bị bỏ lỡ sẽ không được kích hoạt lại. Do đó, khi sử dụng, bạn có thể cần xem xét cách xử lý các tình huống này hoặc có các biện pháp dự phòng.
Khi cấu hình điều kiện kết thúc là "theo số lần lặp lại", hệ thống sẽ tính tổng số lần thực thi của tất cả các phiên bản của cùng một luồng công việc. Ví dụ, nếu một tác vụ định kỳ đã được thực thi 10 lần ở phiên bản 1, và số lần lặp lại cũng được đặt là 10, thì luồng công việc này sẽ không còn được kích hoạt nữa. Ngay cả khi sao chép sang một phiên bản mới, nó cũng sẽ không được kích hoạt, trừ khi bạn thay đổi số lần lặp lại thành một số lớn hơn 10. Tuy nhiên, nếu bạn sao chép thành một luồng công việc mới, số lần đã thực thi sẽ được tính lại từ 0. Trong trường hợp không thay đổi cấu hình liên quan, luồng công việc mới có thể được kích hoạt thêm 10 lần nữa.
Khoảng thời gian trong quy tắc lặp lại được tính tương đối so với thời điểm kích hoạt gần nhất (hoặc thời gian bắt đầu), trong khi chế độ nâng cao sẽ kích hoạt vào các thời điểm cố định. Ví dụ, nếu bạn cấu hình kích hoạt mỗi 30 phút một lần, và lần kích hoạt gần nhất là 2021-09-01 12:01:23, thì lần kích hoạt tiếp theo sẽ là 2021-09-01 12:31:23. Còn chế độ nâng cao, tức là chế độ cron, các quy tắc được cấu hình sẽ kích hoạt vào các thời điểm cố định, ví dụ, bạn có thể cấu hình để kích hoạt vào phút 01 và phút 31 của mỗi giờ.
Giả sử chúng ta cần kiểm tra mỗi phút các đơn hàng chưa thanh toán sau hơn 30 phút kể từ khi tạo, và tự động thay đổi trạng thái của chúng thành đã hủy. Chúng ta sẽ thực hiện điều này bằng cả hai chế độ.
Tạo một luồng công việc dựa trên tác vụ định kỳ. Trong cấu hình kích hoạt, chọn chế độ "Thời gian tùy chỉnh", đặt thời gian bắt đầu là bất kỳ thời điểm nào không muộn hơn thời gian hiện tại, chọn "Mỗi phút" cho quy tắc lặp lại và để trống điều kiện kết thúc:

Sau đó, cấu hình các nút khác theo logic của quy trình, tính toán thời gian 30 phút trước đó, và thay đổi trạng thái của các đơn hàng chưa thanh toán được tạo trước thời điểm đó thành đã hủy:

Sau khi luồng công việc được kích hoạt, nó sẽ chạy mỗi phút một lần kể từ thời gian bắt đầu, tính toán thời gian 30 phút trước đó để cập nhật trạng thái của các đơn hàng được tạo trước thời điểm đó thành đã hủy.
Tạo một luồng công việc dựa trên tác vụ định kỳ. Trong cấu hình kích hoạt, chọn chế độ "Trường thời gian của bộ sưu tập", chọn bộ sưu tập "Đơn hàng", đặt thời gian bắt đầu là 30 phút sau thời gian tạo đơn hàng, và chọn "Không lặp lại" cho quy tắc lặp lại:

Sau đó, cấu hình các nút khác theo logic của quy trình để cập nhật trạng thái của đơn hàng có ID dữ liệu kích hoạt và trạng thái "chưa thanh toán" thành đã hủy:

Khác với chế độ thời gian tùy chỉnh, ở đây không cần tính toán thời gian 30 phút trước đó, vì ngữ cảnh dữ liệu kích hoạt của luồng công việc đã bao gồm hàng dữ liệu tương ứng thỏa mãn điều kiện thời gian, do đó bạn có thể trực tiếp cập nhật trạng thái của đơn hàng đó.