-
Notifications
You must be signed in to change notification settings - Fork 93
обход ошибки невозможности получения лицензии #57
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
oscript-library#46 при не возможности получить лицензию делаем паузу и пробуем загрузить файл еще раз
@@ -68,27 +68,34 @@ | |||
ЛогКонфигуратора = Логирование.ПолучитьЛог("oscript.lib.v8runner"); | |||
ЛогКонфигуратора.УстановитьУровень(Лог.Уровень()); | |||
|
|||
Попытка | |||
Пока Истина Цикл |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Может, не стоит так жестоко в бесконечный цикл вгонять? Вдруг, там и правда с лицензиями проблема.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
при написании этой заглушки больше задавался вопросом: 10 сек ожидания это много или мало
А бесконечный цикл: какое количество повторов цикла считать оптимальным для ожидания лицензии?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Не знаю, не сталкивался. Надо посмотреть, за сколько повторов она всё-таки находится, и смело помножить на два :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Надо посмотреть, за сколько повторов она всё-таки находится, и смело помножить на два :)
Эх, не умеют программисты правильно оценивать плановое время задачи.
Нужно же на 3 умножать :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
и ещё два добавить тогда уж.
прикинем: при выгрузке заданием меня бы устроило, если выгрузка зависает минут на 5-10. При задержке в 10 секунд это 30-60 повторений.
ИначеЕсли Найти(Врег(ТекстОшибки), Врег("Не обнаружено свободной лицензии!")) Тогда | ||
Лог.Ошибка(ТекстОшибки); | ||
Лог.Информация("Повторное подключение. Не обнаружено свободной лицензии!"); | ||
Приостановить(300000); // 5 минут подождем |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ненене! 10 секунд обратно верни! 5 минут - это я говорил в сумме :) когда с командной строки получишь задержку в 5 минут - сдуреешь :(
Такую правку предлагаю не принимать. Например, буквально на днях проводил клиенту пару настроек CI на разных машинах-агентах, ребята-инфраструктурщики каждый раз неверно настраивали файл лицензий. Максимум - предлагаю добавить параметр-флаг ком.строки, который управляет поведение из PR |
При настройке CI все равно смотришь результаты вывода в консоль. |
@artbear 10 секунд и 30 повторов самое то. Если руками запускаешь - сразу багу увидишь, если заданием - тоже не зависнет и упадёт в конце концов |
Мне нравится именно эта исходная формулировка к PR. @dmpas 10 сек и 30 раз = 5 минут. Долговато для меня :( ИМХО нормальный вариант параметризация этого параметра. |
@artbear если все устраивает - надо влить. |
@EvilBeaver Меня как раз не устраивает вариант возможной паузы в 5 минут из-за проблем с лицензией. |
@Tushkan сделаешь параметром время задержки? |
сделаю |
@Tushkan там мои доработки влили. Сделай у себя мердж с девелопной веткой. |
@dmpas смержил |
@@ -25,6 +25,7 @@ | |||
|
|||
Перем ДоменПочтыДляGitПоУмолчанию Экспорт; | |||
Перем ВерсияПлатформы Экспорт; | |||
Перем КоличествоЦикловОжиданияЛицензии Экспорт; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Сделай, плиз, отдельный метод для установки получения количество циклов ожидания.
Экспортные переменные у класса это зло.
В свое время мы зря не отрефакторили экспортные ДоменПочтыДляGitПоУмолчанию
и ВерсияПлатформы
А вообще классу "Менеджер синхронизации" нужен хороший пост-конструктор для правильной инициализации.
PS @EvilBeaver Конструкторы для классов!!
// проверим текст ошибки, если текст содержит информацию о необходимости конвертировать | ||
// тогда выполним конвертацию и повторно попытаемся загрузить файл | ||
ТекстОшибки = Конфигуратор.ВыводКоманды(); | ||
Если Найти(Врег(ТекстОшибки), Врег("Структура конфигурации несовместима с текущей версией программы")) Тогда |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Врег(ТекстОшибки) дважды выполняется в 2х условиях.
Предлагаю сначала получить ВРег, а уже затем результат сравнивать.
Внес исправления |
src/core/Классы/КомандаSync.os
Outdated
@@ -28,7 +28,8 @@ | |||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-format", "<hierarchical|plain>"); | |||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-tempdir", "<Путь к каталогу временных файлов>"); | |||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-push-every-n-commits", "<число> количество коммитов до промежуточной отправки на удаленный сервер"); | |||
Парсер.ДобавитьПараметрФлагКоманды (ОписаниеКоманды, "-process-fatform-modules", "Переименовывать модули обычных форм в Module.bsl"); | |||
Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "-amount-look-for-license", "<число> количество повторов получения лицензии (попытка подключения каждые 10 сек)"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1 Не увидел бесконечного цикла, реализованного в коде :(
2 Нужно документировать поведение - если 0, то бесконечность.
|
||
Если ПолучитьКоличествоЦикловОжиданияЛицензии() <> 0 Тогда |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ИМХО странный вызов ПолучитьКоличествоЦикловОжиданияЛицензии()
проще сразу юзать КоличествоЦикловОжиданияЛицензии, как и в следующей строке :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вечный цикл увидел.
ИМХО здесь путаница с названиями, нужно переименовать локальную переменную КоличествоЦикловОжиданияЛицензии
, чтобы было четкое различие с методом с аналогичным именем ПолучитьКоличествоЦикловОжиданияЛицензии
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ну и документировать все равно нужно :)
#46 при не возможности получить лицензию делаем паузу и пробуем загрузить файл еще раз