Установка
- Установить Microsoft .NET 8 SDK
- Скачать дистрибутив утилиты
- Создать рабочий каталог и распаковать в него дистрибутив, например:
C:\dajet-utility
- Перейти в каталог установки и выполнить тестовый скрипт
test.djs
PRINT 'Hello from DaJet!'
В случае, если тестовый скрипт отстутствует, создайте его самостоятельно.
Результат выполнения скрипта должен быть следующим:
Тоже самое для Linux:
Описание функционала
Утилита dajet может быть использована для хостинга (регулярного) или одноразового выполнения скриптов DaJet. Режим одноразового выполнения предназначен для решения оперативных задач, а также изучения DaJet, тестирования скриптов и тому подобного. Режим хостинга предполагает промышленное использование технологии, то есть запуск утилиты dajet в качестве инфраструктурного сервиса для обмена данными. Количество одновременно выполняемых скриптов в режиме хостинга ограничено только текущим наличием ресурсов системы.
Файлы скриптов DaJet должны иметь расширение
djs
!
Исполняемый файл dajet находится в корневом каталоге установки, может быть сконфигурирован для запуска как служба Windows или демон Linux (поддерживается systemd).
Файлы скриптов DaJet, а также файл настроек
config.json
, должны быть в кодировке UTF-8.
Параметры запуска утилиты
(из корневого каталога установки)
Параметр | Windows | Linux | Описание |
---|---|---|---|
Нет | dajet | dotnet ./dajet.dll | Хостинг скриптов с настройками по умолчанию |
Да | dajet ./script.djs | dotnet ./dajet.dll ./script.djs | Выполнение отдельно взятого скрипта |
Да | dajet ./config.json | dotnet ./dajet.dll ./config.json | Хостинг скриптов с указанием настроек |
Значения настроек хостинга по умолчанию
Наименование | Тип значения | Значение | Описание |
---|---|---|---|
LogSize | Число | 1048576 | Макисмальный размер лога службы в байтах |
LogFile | Строка | dajet.log | Наименование файла лога службы |
LogPath | Строка | ./ | Каталог размещения лога службы |
RootPath | Строка | ./scripts | Корневой каталог размещения скриптов DaJet |
Refresh | Число | 600 | Периодичность проверки изменения каталога размещения скриптов в секундах |
Пример файла настроек config.json
{
"LogSize": 1048576,
"LogFile": "dajet-2024-08-01.log",
"LogPath": "./logs",
"RootPath": "./_scripts",
"Refresh": 60
}
Каталог скриптов (настройка RootPath) может иметь любую структуру. Сервис будет искать скрипты DaJet, как в корневом, так и во всех вложенных в него каталогах. Поиск скриптов DaJet выполняется по шаблону *.djs
(то есть по расширению файла - djs).
Каждый скрипт DaJet (конвейер обработки данных) выполняется сервисом в отдельном потоке операционной системы параллельно и независимо друг от друга. Те скрипты, которые используют команду CONSUME выполняются “бесконечно” до полной остановки службы.
Логирование выполняется всеми конвейерами (потоками выполнения) хоста в один файл, например, dajet.log
, указанный в настройках. Макисмальный размер лога означает, что по его достижению файл полностью перезаписывается с самого начала. Логирование действий сервиса имеет больше диагностическое значение для правильной настройки подключений к базам данных и внешним сервисам. Именно поэтому не имеет смысла делать лог большим - достаточно иметь информацию за последние 15-30 минут работы. Практика использования аналогичных сервисов DaJet показала, что такой подход вполне достаточен и удобен.
Запуск и остановка скриптов “на лету”
Значением опции Refresh по умолчанию является 600 секунд. Служба использует этот интервал времени для проверки добавления в корневой каталог скриптов (настройка RootPath) новых файлов с расширением djs
. Если новые файлы появились в процессе работы сервиса, то будет выполнена попытка запустить их. Если какой-то из ранее запущенных на выполнение файлов был удалён или его расширение было изменено с djs
на любое другое, например, stop
, то такой процесс выполнения будет остановлен службой.
Остановка службы DaJet для добавления, переименования или удаления скриптов не требуется!
Например, при добавлении нового скрипта amqp-import.djs, в лог службы будет сделана запись вида:
[STREAM][Assembled in 142 ms] C:\dajet\scripts\amqp-import.djs
После удаления или переименования файла amqp-import.djs
, например, как amqp-import.stop
, будет сделана следующая запись:
[DISPOSED] C:\dajet\scripts\amqp-import.djs