The interactive file manager requires Javascript. Please enable it or use sftp or scp.
You may still browse the files here.
Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
Mazhornyi patch 4.12.0.tar.gz | 2021-09-08 | 56.1 MB | |
Mazhornyi patch 4.12.0.zip | 2021-09-08 | 56.4 MB | |
README.md | 2021-09-08 | 6.4 kB | |
Totals: 3 Items | 112.6 MB | 0 |
Выпуск новой мажорной версии
Workflow модели
Теперь можно описывать последовательность вызовов Getl скриптов с нужными параметрами с помощью моделей workflow. Пример ниже описывает задачу, которая выполняет параллельно параметризированные Script1 и Script2, в случае ошибки одного из них выполняет скрипт ErrorScript, если оба завершились удачно и Script2 вернул нужные значения, далее выполняется Script3:
:::groovy
def job = models.workflow {
// Старт задачи
start {
// Выполнять в 2 параллельных потока
countThreads = 2
// Скрипт шага
exec {
// Имя класса скрипта
className = 'packet1.Script1'
// Значение переменной класса
vars.param1 = 'test 1'
}
exec('script2') {
className = 'packet1.Script2'
vars.param1 = 0
}
// Выполнить при ошибке
onError {
exec {
className = 'packet1.ErrorScript'
}
}
// Выполнить далее
later {
// Условие выполнения с проверкой результата выполнения именного скрипта
condition = '''result('script2').res == 'OK' '''
exec {
className = 'packet1.Script3'
vars.param1 = 'test 3'
}
}
}
}
// Проверить, что успешно выполнено 3 скрипта
assert job.execute() == 3
// Проверить результат выполнения именованного скрипта 2
assert job.result('script2').res == 'OK'
Клонирование объектов при многопоточном выполнении
Переработана модель регистрации в репозитории объектов с потоков. Теперь разрешается регистрировать из потоков в репозитории новые временные объекты, имена которых начинаются с # и разрешается регистрировать постоянные объекты репозитория с методов скриптов init, check, done и error, даже если скрипты выполняются не в главном потоке.
Dsl фичи
- models: добавлена новая модель workflow, с помощью которой можно описать дерево вызовов Getl скриптов в виде дерева, с поддержкой многопоточного выполнения, ветвления по условиям и обработки ошибок.
- main: теперь разрешается регистрировать временные объекты (начинаются с #) в репозитории из параллельных потоков. Если несколько потоков попытаются зарегистрировать объект с одним именем, возникнет ошибка. Для объекта будет полноценно поддерживаться клонирование, если к нему будут обращения с других потоков. При завершении потока объект останется в репозитории, после окончания работы скрипта, объект будет удален из репозитория.
- main: теперь вызываемые скрипты из потоков выполняют свой код init, check, done и error в теле главного потока. Это дает возможность провести инициализацию нужных объектов в репозитории и многопоточно вызывать скрипты через workflow.
Dsl баги
- repository: при выполнении unregister соединений и файловых менеджеров у них могли остаться открытые соединения, теперь они принудительно закрываются перед очисткой объекта из репозитория.
- models: при вызове метода fill модели ReferenceVerticaTables не возвращалось правильное количество заполненных таблиц.
Getl фичи
- getl.excel.ExcelDataset: добавлено свойство rowCacheSize, в котором можно задать количество кэшируемых записей при чтении листа.
- getl.kafka.KafkaConnection: добавлены свойства форматирования дат, времени, булевых полей и разделитель для десятичных чисел.
Getl баги
- getl.excel.ExcelDriver: при чтении булевых полей не учитывался формат, заданный в ExcelDataset.
- getl.utils.Config: при изменении свойства configClassManager одновременно с разных потоков могла произойти ошибка.
Getl критические изменения
- getl.hive.HiveTable: из опций create убраны свойства fieldsTerminated и nullDefined, так как они должны задаваться в rowFormat.
- getl.impala.ImpalaTable: из опций create убрано свойство fieldsTerminated, так как оно должно задаваться в rowFormat.
- getl.mssql.MSSQLTable: в read опциях свойство withHint хранило значение в файле конфигурации, как hint. Теперь в файле свойство будет так же называться withHint.