Top.Mail.Ru
Tdg » 1.6 » 2. Руководство по эксплуатации » 2.13. Задачи и отложенные работы
 
2. Руководство по эксплуатации / 2.13. Задачи и отложенные работы
2. Руководство по эксплуатации / 2.13. Задачи и отложенные работы

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 (см. подробнее).

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