Skip to the content.

Главная

Установка

  1. Установить Microsoft .NET 8 SDK
  2. Скачать дистрибутив утилиты
  3. Создать рабочий каталог и распаковать в него дистрибутив, например: C:\dajet-utility
  4. Перейти в каталог установки и выполнить тестовый скрипт test.djs
    PRINT 'Hello from DaJet!'
    

    В случае, если тестовый скрипт отстутствует, создайте его самостоятельно.

Результат выполнения скрипта должен быть следующим:

Тестовый скрипт Windows

Тоже самое для Linux:

Тестовый скрипт 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