Ця документація була автоматично перекладена штучним інтелектом.
Заплановане завдання — це подія, що запускається за часовою умовою, і має два режими:
Коли система досягає моменту часу (з точністю до секунди), що відповідає налаштованим умовам запуску, буде запущено відповідний робочий процес.
У списку робочих процесів, під час створення робочого процесу, оберіть тип «Заплановане завдання»:`

Для звичайного режиму спочатку потрібно налаштувати час початку на будь-який момент часу (з точністю до секунди). Час початку можна встановити на майбутнє або на минуле. Якщо встановлено час у минулому, система перевірить, чи настав час, відповідно до налаштованої умови повтору. Якщо умова повтору не налаштована, і час початку в минулому, то робочий процес більше не буде запущений.
Правило повтору можна налаштувати двома способами:
Після налаштування правила повтору ви також можете налаштувати умову завершення. Вона може бути завершена у фіксований момент часу або обмежена кількістю виконань.
Використання поля часу колекції для визначення часу початку — це режим запуску, який поєднує звичайні заплановані завдання з полями часу колекції. Використання цього режиму може спростити вузли в деяких специфічних робочих процесах, а також є більш інтуїтивно зрозумілим у налаштуванні. Наприклад, щоб змінити статус прострочених неоплачених замовлень на «скасовано», ви можете просто налаштувати заплановане завдання в режимі поля часу колекції, обравши час початку через 30 хвилин після створення замовлення.
Якщо налаштована часова умова виконана, але весь сервіс NocoBase перебуває у неактивному або вимкненому стані, то заплановане завдання, яке мало б запуститися в цей момент, буде пропущено. Крім того, після перезапуску сервісу, пропущені завдання більше не будуть запускатися. Тому під час використання може знадобитися розглянути обробку таких ситуацій або запасні заходи.
Коли в умові завершення налаштовано «за кількістю повторів», враховується загальна кількість виконань для всіх версій одного й того ж робочого процесу. Наприклад, якщо заплановане завдання було виконано 10 разів у версії 1, і кількість повторів також встановлена на 10, цей робочий процес більше не буде запускатися. Навіть якщо його скопіювати в нову версію, він не буде запущений, якщо не змінити кількість повторів на число, більше за 10. Однак, якщо його скопіювати як новий робочий процес, кількість виконань буде перерахована з 0. Без зміни відповідних налаштувань, новий робочий процес може бути запущений ще 10 разів.
Інтервал у правилі повтору відраховується від моменту останнього запуску (або часу початку), тоді як розширений режим запускається у фіксовані моменти часу. Наприклад, якщо налаштовано запуск кожні 30 хвилин, і останній запуск був 2021-09-01 12:01:23, то наступний запуск відбудеться 2021-09-01 12:31:23. Розширений режим, тобто режим cron, запускається за правилами, які завжди прив'язані до фіксованих моментів часу. Наприклад, можна налаштувати запуск на 01-й та 31-й хвилині кожної години.
Припустимо, щохвилини потрібно перевіряти замовлення, які не були оплачені протягом 30 хвилин після створення, і автоматично змінювати їх статус на «скасовано». Розглянемо реалізацію за допомогою обох режимів.
Створіть робочий процес на основі запланованого завдання. У налаштуваннях тригера оберіть режим «Користувацький час». Час початку оберіть будь-який момент, не пізніший за поточний. Для правила повтору оберіть «Щохвилини». Умову завершення залиште порожньою:

Потім налаштуйте інші вузли відповідно до логіки процесу: обчисліть час 30 хвилин тому, і змініть статус неоплачених замовлень, створених до цього часу, на «скасовано»:

Після активації робочого процесу, він буде запускатися щохвилини, починаючи з часу початку, обчислюючи час 30 хвилин тому, щоб оновити статус замовлень, створених раніше цього моменту, на «скасовано».
Створіть робочий процес на основі запланованого завдання. У налаштуваннях тригера оберіть режим «Поле часу колекції». Для колекції оберіть таблицю «Замовлення». Час початку встановіть на 30 хвилин після часу створення замовлення. Для правила повтору оберіть «Не повторювати»:

Потім налаштуйте інші вузли відповідно до логіки процесу: оновіть статус замовлення з ID, що відповідає ID даних тригера, та статусом «неоплачено» на «скасовано»:

На відміну від режиму користувацького часу, тут не потрібно обчислювати час 30 хвилин тому, оскільки контекст даних, що запускають робочий процес, вже містить відповідний рядок даних, який відповідає часовій умові. Тому ви можете безпосередньо оновити статус відповідного замовлення.