2.13. Задачи и отложенные работы | Tdg
2. Руководство по эксплуатации 2.13. Задачи и отложенные работы

2.13. Задачи и отложенные работы

2.13.1. Задачи (tasks)

Задачи суть те же пайплайны с набором функций, которые могут быть применены к сохраненным объектам или для любых других действий в системе (например, создание отчетов, инвалидация кэшированных данных и др.) и запущены в любое время, в т.ч. по расписанию.

Для выполнения задач в системе должны быть определены роли task_runner и scheduler и настроена их конфигурация.

Отслеживать текущее состояние задач и управлять их выполнением можно через web-интерфейс на вкладке Tasks.

../../_images/tasks01.png
  • ID — UUID экземпляра задачи;

  • Name — Имя задачи;

  • Kind — Вид задачи:

    • single_shot — единоразовая задача;

    • continuous — непрерывно выполняемая задача;

    • periodical — задача, выполняемая по расписанию;

  • Schedule — Расписание выполнения задачи. Актуально только для задач вида «periodical»;

  • Started — Дата и время старта экземпляра задачи;

  • Finished — Дата и время окончания экземпляра задачи;

  • Status — Текущий статус задачи:

    • did not start;

    • pending;

    • running;

    • stopped;

    • failed;

    • completed;

  • Result — Сообщение о результате завершенной задачи (в статусе «stopped», или «failed», или «completed»);

  • Action — Возможные действия для управления выполнением задач:

    • Start — запустить новый экземпляр неактивной задачи (задача в статусе «did not start» или «pending» — подсвечены зеленым в web-интерфейсе);

    • Stop — прекратить работу активного экземпляра задачи (в статусе «running»);

    • Hide — скрыть информацию об экземпляре задачи, завершившем свою работу (в статусе «stopped», или «failed», или «completed»).

Имя, вид и расписание выполнения задач определяются в конфигурации системы.

Информацию о конкретном экземпляре задачи можно получить в отдельном pop-up окне, которое выводится по клику на UUID задачи в колонке ID.

../../_images/tasks02.png

2.13.2. Отложенные работы (jobs)

Отложенные работы (jobs) по сути аналогичны задачам (являются пайплайнами обработки объектов). Но в отличие от задач, которые задаются и настраиваются в конфигурации системы, отложенные работы задаются и вызываются в клиентском программном коде: функция push_job программного интерфейса репозитория. Например:

local params = ...

local obj = params.obj

if obj.id ~= '26DA4133-0F97-44E8-83E6-95BA7646FC02' then
    repository.push_job('bad_job')
else
    for i = 1, obj.repeats do
        repository.push_job('sum', {obj.id, obj.initial, i})
    end
end

return params

Web-интерфейс позволяет вести мониторинг отложенных работ, которые завершились с ошибкой, — вкладка Failed Jobs. Элементы web-интенфейса и набор операций, доступные на этой вкладке, аналогичны элементам и операциям ремонтной очереди на вкладке Repair (см. подробнее).

В конфигурации системы также можно задать:

Found what you were looking for?
Feedback