Tasker
Tasker — страница /tasker.html для хранения расписаний и запуска локальных задач.
Список
Задачи читаются из таблицы schedules. В списке отображаются имя, состояние и основные параметры запуска.
Редактирование
Для задачи задаются:
- имя;
- executor;
- путь к скрипту, файлу или задаче;
- аргументы;
- состояние
enabled; - расписание;
- политика overlap;
- payload.
Поддерживаемые executor:
| Executor | Что запускает |
|---|---|
python, node, ts-node, npm |
скрипты соответствующих сред |
exe, cmd, bat, bash, ps1 |
исполняемые файлы и командные сценарии |
csx |
C#-скрипт |
csx-internal |
C#-скрипт с доступом к внутренностям z3nDash; в списке задач для него есть кнопка сборки |
xml |
шаблон ZennoPoster: граф из XML проигрывает встроенный рантайм, браузер выбирается в карточке задачи |
internal |
встроенная задача z3nDash |
Расписание
UI умеет формировать:
- запуск по требованию;
- ежедневный запуск;
- запуск по дням недели;
- запуск по дню месяца;
- интервал в минутах.
Итоговые значения сохраняются в cron, interval_minutes и fixed_time.
Overlap
skip— не запускать новый экземпляр, пока активен предыдущий;parallel— разрешить несколько экземпляров доmax_threads;kill_restart— остановить активные экземпляры и запустить новый.
Управление
Доступны:
- Run;
- Stop;
- Restart;
- включение/отключение расписания;
- удаление и дублирование;
- открытие файла и каталога;
- открытие терминала;
- проверка/установка зависимостей Python и Node.
Output
Вывод активного запуска передаётся через SSE. Для нескольких параллельных экземпляров доступны отдельные runId.
Traffic
Вкладка задачи с трафиком из trafficLog.jsonl:
GET /traffic?tail=N&task_id=..., опрос раз в 3 секунды. Пишет его ZpRuntime,
подробности — в Traffic. Файл ротируется сам.
Payload
Payload состоит из schema и values. Его можно редактировать, импортировать, экспортировать и передавать executor при запуске.
API
Управление из работающего скрипта без поиска ID: Task API. Доступны отсрочка следующего запуска, пауза и возобновление расписания.
Основные маршруты:
GET /tasker/listPOST /tasker/savePOST /tasker/deletePOST /tasker/runPOST /tasker/stopGET /tasker/instancesPOST /tasker/kill-instanceGET|POST /tasker/payloadGET /tasker/output/streamGET /tasker/queuePOST /tasker/clear-queue