Skip to content

Commit

Permalink
Merge branch 'release/v.0.5.1'
Browse files Browse the repository at this point in the history
  • Loading branch information
arkuznetsov committed Sep 23, 2019
2 parents c9f95d3 + 9fb8c9c commit ce3a0aa
Show file tree
Hide file tree
Showing 5 changed files with 74 additions and 38 deletions.
9 changes: 8 additions & 1 deletion examples/clusterdata/ib-jornal2elastic.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,14 @@
"ИдОбработчика":"ЧтениеФайла",
"ИмяОбработки":"ЧтениеСкобкоФайла",
"Параметры":{
"КаталогПозицийЧтения":"$workDir\\rp"
"КаталогПозицийЧтения":"$workDir\\rp",
"ПрефиксФайлаПозицииЧтения":{
"ИдОбработчика": "СписокИБ",
"ФункцияПолученияЗначения":"ЗначениеПоляЗаписи",
"Параметры":[
"Имя"
]
}
},
"Обработчики":[
{
Expand Down
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("yabr")
.Версия("0.5.0")
.Версия("0.5.1")
.ВерсияСреды("1.0.21")
.ЗависитОт("logos", "1.2.1")
.ЗависитОт("delegate", "0.2.0")
Expand Down
48 changes: 19 additions & 29 deletions src/Классы/ВыводДанныхВЭластик.os
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

Перем БылиОшибкиОтправки;
Перем ДанныеДляОтправки; // Массив(Структура) - накопленные данные для отправки в Elastic
Перем РезультатыОбработки; // Массив(Структура) - результаты обработки данных
Перем РезультатыОбработки; // Структура - результаты обработки последней порции данных

Перем НачалоОбработкиПорции; // Число - время начала обработки очередной порции данных
// для замера времени обработки
Expand Down Expand Up @@ -368,17 +368,11 @@
Возврат;
КонецЕсли;

КоличествоНакопленныхДанных = 0;

Если ТипЗнч(РезультатыОбработки) = Тип("Массив") Тогда
КоличествоНакопленныхДанных = РезультатыОбработки.Количество();
КонецЕсли;

ОтправитьДанные();

Для й = КоличествоНакопленныхДанных По РезультатыОбработки.ВГраница() Цикл
ПродолжениеОбработкиДанныхВызовМенеджера(РезультатыОбработки[й]);
КонецЦикла;
ПродолжениеОбработкиДанныхВызовМенеджера(РезультатыОбработки);

РезультатыОбработки = Неопределено;

КонецПроцедуры // ОбработатьДанные()

Expand All @@ -398,16 +392,14 @@
//
Процедура ЗавершениеОбработкиДанных() Экспорт

Если ТипЗнч(РезультатыОбработки) = Тип("Массив") И РезультатыОбработки.Количество() > 0 Тогда
Если ТипЗнч(РезультатыОбработки) = Тип("Структура") Тогда

КоличествоНакопленныхДанных = РезультатыОбработки.Количество();

ОтправитьДанные();

Для й = КоличествоНакопленныхДанных По РезультатыОбработки.ВГраница() Цикл
ПродолжениеОбработкиДанныхВызовМенеджера(РезультатыОбработки[й]);
КонецЦикла;
ПродолжениеОбработкиДанныхВызовМенеджера(РезультатыОбработки);

РезультатыОбработки = Неопределено;

КонецЕсли;

Если БылиОшибкиОтправки Тогда
Expand Down Expand Up @@ -493,31 +485,29 @@
РезультатыОбработки = Новый Массив();
КонецЕсли;

ОписаниеРезультата = Новый Структура();
РезультатыОбработки = Новый Структура();
Если СохранятьОбработанныеДанные Тогда
ОписаниеРезультата.Вставить("Данные" , ДанныеДляОтправки);
РезультатыОбработки.Вставить("Данные" , ДанныеДляОтправки);
КонецЕсли;
Если СохранятьОтправленныеСтроки Тогда
ОписаниеРезультата.Вставить("Строки" , СтрокиДляОтправки);
РезультатыОбработки.Вставить("Строки" , СтрокиДляОтправки);
КонецЕсли;
ОписаниеРезультата.Вставить("Обработано" , РезультатОбработки);
ОписаниеРезультата.Вставить("Размер" , ДанныеДляОтправки.Количество());
ОписаниеРезультата.Вставить("ВремяОжиданияДанных", ВремяОжиданияДанных);
ОписаниеРезультата.Вставить("ВремяОтправки",
РезультатыОбработки.Вставить("Обработано" , РезультатОбработки);
РезультатыОбработки.Вставить("Размер" , ДанныеДляОтправки.Количество());
РезультатыОбработки.Вставить("ВремяОжиданияДанных", ВремяОжиданияДанных);
РезультатыОбработки.Вставить("ВремяОтправки",
(ТекущаяУниверсальнаяДатаВМиллисекундах() - НачалоОбработкиПорции) / КоэффициентВремени);
ОписаниеРезультата.Вставить("Ответ" , ДанныеОтвета);
ОписаниеРезультата.Вставить("ТекстОшибки", ТекстОшибки);
РезультатыОбработки.Вставить("Ответ" , ДанныеОтвета);
РезультатыОбработки.Вставить("ТекстОшибки", ТекстОшибки);

РезультатыОбработки.Добавить(ОписаниеРезультата);

Если РезультатОбработки Тогда
Лог.Отладка("[%1] Отправлен пакет данных (%2) в ""%3:%4%5"". Время отправки: %6 сек.",
ТипЗнч(ЭтотОбъект),
ДанныеДляОтправки.Количество(),
Эластик_Сервер,
Эластик_Порт,
Эластик_Путь,
ОписаниеРезультата.ВремяОтправки);
РезультатыОбработки.ВремяОтправки);
Иначе
БылиОшибкиОтправки = Истина;
Лог.Ошибка("[%1] Ошибка отправки пакет данных (%2) в ""%3:%4%5"":%6%7%6Время отправки: %8 сек.",
Expand All @@ -528,7 +518,7 @@
Эластик_Путь,
Символы.ПС,
ТекстОшибки,
ОписаниеРезультата.ВремяОтправки);
РезультатыОбработки.ВремяОтправки);
КонецЕсли;

ДанныеДляОтправки = Новый Массив();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@
УстановитьПараметрыОбработчика(ОписаниеОбработчика);

Если ОписаниеОбработчика.Свойство("ПроцедураОбработки") Тогда
Выполнить("ПараметрыОбработки.Обработка." + ОписаниеОбработчика.ПроцедураОбработки + "()");
Выполнить("ОписаниеОбработчика.Обработка." + ОписаниеОбработчика.ПроцедураОбработки + "()");
Иначе
ОписаниеОбработчика.Обработка.ОбработатьДанные();
КонецЕсли;
Expand Down Expand Up @@ -513,7 +513,14 @@
ОписаниеПараметра.ФункцияПолученияЗначения,
СписокПараметров);

ЗначениеПараметра = Вычислить(КодВычисленияЗначения);
Попытка
ЗначениеПараметра = Вычислить(КодВычисленияЗначения);
Исключение
ВызватьИсключение СтрШаблон("Ошибка вычисления значения ""%1"":%2%3",
КодВычисленияЗначения,
Символы.ПС,
ПодробноеПредставлениеОшибки(ОписаниеОшибки()));
КонецПопытки;

Возврат ЗначениеПараметра;

Expand Down
42 changes: 37 additions & 5 deletions src/Классы/ЧтениеСкобкоФайла.os
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@
Перем НачальнаяСтрока; // Число - номер начальной строки файла для чтения
Перем УровниЗаписей; // Массив(Число) - номера уровней записей скобкофайла,
// которые будут переданы на дальнейшую обработку
Перем КаталогПозицийЧтения; // Строка - путь к каталогу для сохранения позиций начала чтения
Перем КаталогПозицийЧтения; // Строка - путь к каталогу для сохранения позиций начала чтения
Перем ПрефиксФайлаПозицииЧтения; // Строка - префикс, добавляемый к имени файла для сохранения
// позиции начала чтения

Перем ЧастотаЗамераСкоростиВыполнения; // Число - через указанное количество прочитанных строк
// будет выполняться замер скорости чтения
Expand Down Expand Up @@ -88,6 +90,12 @@
,
"",
"Путь к каталогу для сохранения позиций начала чтения.");
ДобавитьОписаниеПараметра(Параметры,
"ПрефиксФайлаПозицииЧтения",
"Строка",
,
"",
"Префикс, добавляемый к имени файла для сохранения позиции начала чтения.");
ДобавитьОписаниеПараметра(Параметры,
"ЧастотаЗамераСкоростиВыполнения",
"Число",
Expand Down Expand Up @@ -198,6 +206,11 @@
КаталогПозицийЧтения = ПараметрыОбработки.КаталогПозицийЧтения;
КонецЕсли;

ПрефиксФайлаПозицииЧтения = "";
Если ПараметрыОбработки.Свойство("ПрефиксФайлаПозицииЧтения") Тогда
ПрефиксФайлаПозицииЧтения = ПараметрыОбработки.ПрефиксФайлаПозицииЧтения;
КонецЕсли;

ЧастотаЗамераСкоростиВыполнения = 0;
Если ПараметрыОбработки.Свойство("ЧастотаЗамераСкоростиВыполнения") Тогда
ЧастотаЗамераСкоростиВыполнения = ПараметрыОбработки.ЧастотаЗамераСкоростиВыполнения;
Expand Down Expand Up @@ -266,6 +279,8 @@
НачальнаяСтрока = Значение;
ИначеЕсли ВРег(ИмяПараметра) = ВРег("КаталогПозицийЧтения") Тогда
КаталогПозицийЧтения = Значение;
ИначеЕсли ВРег(ИмяПараметра) = ВРег("ПрефиксФайлаПозицииЧтения") Тогда
ПрефиксФайлаПозицииЧтения = Значение;
ИначеЕсли ВРег(ИмяПараметра) = ВРег("ЧастотаЗамераСкоростиВыполнения") Тогда
ЧастотаЗамераСкоростиВыполнения = Значение;
Иначе
Expand Down Expand Up @@ -745,7 +760,7 @@
// обработка добавленного элемента по правилам обработки
ОбработатьЭлементДанных(ЭлементДляЗаполнения);

ЭлементДляЗаполнения = ЭлементДляЗаполнения.Родитель;
// ЭлементДляЗаполнения = ЭлементДляЗаполнения.Родитель;

СчетчикСимволов = й + 1;

Expand Down Expand Up @@ -793,10 +808,17 @@
КонецЕсли;
КонецЕсли;

РодительскийЭлемент = Элемент.Родитель;

Если ПродолжитьОбработкуЭлемента Тогда
ПродолжениеОбработкиДанныхВызовМенеджера(Элемент);
Элемент.Родитель = Неопределено;
Элемент.Значения.Очистить();
РодительскийЭлемент.Значения.Удалить(Элемент.Индекс);
КонецЕсли;

Элемент = РодительскийЭлемент;

КонецПроцедуры // ОбработатьЭлементДанных()

// Функция - получает информацию о начальной позиции чтения данных
Expand All @@ -812,7 +834,13 @@
Возврат Результат;
КонецЕсли;

ВремФайл = Новый Файл(СтрШаблон("%1%2%3.rp", КаталогПозицийЧтения, ПолучитьРазделительПути(), ИмяФайла()));
ПутьКФайлу = СтрШаблон("%1%2%3_%4.rp",
КаталогПозицийЧтения,
ПолучитьРазделительПути(),
ПрефиксФайлаПозицииЧтения,
ИмяФайла());

ВремФайл = Новый Файл(ПутьКФайлу);

Если НЕ ВремФайл.Существует() Тогда
Возврат Результат;
Expand Down Expand Up @@ -844,8 +872,12 @@
Возврат;
КонецЕсли;

ПутьКФайлу = СтрШаблон("%1%2%3.rp", КаталогПозицийЧтения, ПолучитьРазделительПути(), ИмяФайла());

ПутьКФайлу = СтрШаблон("%1%2%3_%4.rp",
КаталогПозицийЧтения,
ПолучитьРазделительПути(),
ПрефиксФайлаПозицииЧтения,
ИмяФайла());

МенеджерОбработкиДанных.ОбеспечитьКаталог(ПутьКФайлу, Истина);

ВремТекст = Новый ТекстовыйДокумент();
Expand Down

0 comments on commit ce3a0aa

Please sign in to comment.