Добро пожаловать, Гость Поиск | Активные темы | Вход | Регистрация

API или ?
DevilGenius
#1 Оставлено : 25 ноября 2022 г. 13:47:29(UTC)

Ранг: Опытный человек

Группы: Registered
Сообщений: 99

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 42 раз в 38 постах
Уважаемый разработчик, очень недостает API либо же более простого с точки зрения программирования решения, в виде файлов-флагов или куммулятивного файла с рядом динамических параметров.
Объясню детально. Смею предположить, что у нашей команды на сегодняшний день наибольшее кол-во одновременно работающих клиентов (порядка 150 на 2-ух id).
Следить за ними всеми в режиме реального времени крайне затруднительно с учетом что они разбросаны по десятку серверов.
Вчера, например, был массовый баг какой-то. Произошло разлогинивание на Rutube порядка 30% клиентов и обратно они сами зайти не могли.
Либо же почти каждый день при плановой ревизии серверов наблюдается порядка 10% клиентов, которые висят с черным окном автопросмотра и активной кнопкой Пуск.
Как мы понимаем - это все простой и это не хорошо.
На всех наших серверах работает Cron, который справляется с подавляющим объемом автоматизации. Перезагружает сервер, стартует клиентов по таймингам, контролирует автозапуск автопросмотра.
Но в клиентскую часть заложено слишком много дочерних окон, зачастую о некритичных ошибках и отловить такие дочерние окна не всегда представляется возможным.
Наиболее частые проблемы:
1. 2 или более клиентов решили стартануть одновременно - неминуемо будет ошибка связи с сервером №2. Было бы здорово вынести в GUI или INI файл параметр регулирующий авторестарт и кол-во попыток авторестарта.
2. Если загруженность сервера велика или интернет канал не стабилен, при первом подключении, повисев на странице первичного входа (белое окно и вращающийся бублик посередине) - клиент выдаст, что вход не удался. Опять же клиент продолжит гордо показывать это дочернее кно с ошибкой и ничего не делать. И тут снова напрашивается закрытие окна с ошибкой по таймеру и срабатывание авторестарта.
Но это я что-то уже ушел в область хотелок по непотопляемости клиента.
Изначальная идея была мониторить клиентов через API. баланс, онлайн/офлайн клиент, идет ли просмотр в настоящее время и т.п.
Понятное дело что вряд ли вообще вы планировали API на настоящее время, по этому есть альтернативный лайтовый в реализации вариант.
Если бы клиент мог в корне или поддирректории создавать файл-флаг (например online.txt) при условиях: 1. Кнопка Пуск не активна 2. Окно автопросмотра существует - то это уже решило бы не менее половины проблем. Cron отслеживал бы в реальном времени файл-флаг. При online - ничего не делает. При offline - киляет и заново стартует проблемный клиент.
И, кстати, баланс тоже можно обновлять в тектовом файле. Тогда его можно регулярно считывать и оперативно уведомлять администратора что пора пополнить счет.
1 пользователь поблагодарил DevilGenius за этот пост.
Admin оставлено 01.12.2022(UTC)
Admin
#2 Оставлено : 1 декабря 2022 г. 12:53:02(UTC)

Ранг: Администрация

Группы: Administrators
Сообщений: 108
Откуда: Россия

Сказал(а) «Спасибо»: 141 раз
Поблагодарили: 133 раз в 117 постах
DevilGenius написал:
Уважаемый разработчик, очень недостает API либо же более простого с точки зрения программирования решения, в виде файлов-флагов или куммулятивного файла с рядом динамических параметров.
...
И, кстати, баланс тоже можно обновлять в тектовом файле. Тогда его можно регулярно считывать и оперативно уведомлять администратора что пора пополнить счет.

Суть предложения в целом ясна, спасибо за подробное понятное объяснение. В данный момент все ресурсы направлены на реализацию нового проекта для Дзен. Уже вышли на финишную прямую и надеемся успеть запустить его до конца года. После завершения в планах проведение всех накопившихся работ по vRutube. В первую очередь стабилизация автозапуска программы. Ваши предложения также внесли в перечень работ. Потребуется некоторое время, чтобы тщательно всё проанализировать, придумать и реализовать решение.
1 пользователь поблагодарил Admin за этот пост.
DevilGenius оставлено 01.12.2022(UTC)
DevilGenius
#3 Оставлено : 1 декабря 2022 г. 12:56:32(UTC)

Ранг: Опытный человек

Группы: Registered
Сообщений: 99

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 42 раз в 38 постах
Прям праздник какой-то!!!
И Дзен, и стабилизация автозапуска vRutube!

Обязательно присоединимся к вДзену!))

Спасибо!
Admin
#4 Оставлено : 10 января 2023 г. 16:27:37(UTC)

Ранг: Администрация

Группы: Administrators
Сообщений: 108
Откуда: Россия

Сказал(а) «Спасибо»: 141 раз
Поблагодарили: 133 раз в 117 постах
В данный момент проводим работы по этой задаче, появились некоторые соображения. Программа в ходе работы пишет данные в лог-файл с именем log.core.txt в формате
<дата> <время> <текст_сообщения>.

Если Cron сможет использовать его для управления процессом, то в нём выводятся сообщения об изменении состояния программы. В случае отсутствия необходимых подключений к серверам появляется одно из следующих сообщений:

"По неизвестным причинам не удалось установить соединение с веб-сервером №1 приложения.
Работа программы без соединения с сервером невозможна.
Попробуйте повторить действие позднее.
"

"По неизвестным причинам не удалось установить соединение с веб-сервером №2 приложения.
Работа программы без соединения с сервером невозможна.
Попробуйте повторить действие позднее.
"

"По неизвестным причинам не удалось получить данные от сервера приложения.
Работа программы без получения данных с сервера невозможна.
Попробуйте повторить действие позднее.
"


Если все соединения установлены программой успешно, то производится проверка залогинена ли учётная запись на Rutube и при необходимости выполняется вход. Если вход выполнен успешно, то сейчас мы добавили вывод текста "Заработок баллов успешно запущен.".

Если вход не удалось выполнить, то выводится текст "Не удалось выполнить вход в учётную запись в Rutube. Автоматический показ видеороликов не может быть запущен.".

Также при появлении капчи добавили вывод текста "Обнаружена капча. Необходимо разгадать её для продолжения работы автопросмотра.".


Для контроля баланса добавили вывод в log.core.txt сообщения "На балансе закончились баллы.". Такая проверка баланса выполняется при каждом запуске программы, или раз в 6 часов при постоянно работающей программе, чтобы не засорять лог частыми записями.

Новая версия программы vRutube v1.7.1.0 с описанными выше добавлениями была выпущена сегодня. Будет ли такой формат взаимодействия через лог-файл приемлемым для улучшения автоматизации? Мы готовы при необходимости добавить вывод дополнительных информационных сообщений. Думаю, нам удастся совместно выработать успешный протокол.
1 пользователь поблагодарил Admin за этот пост.
DevilGenius оставлено 10.01.2023(UTC)
DevilGenius
#5 Оставлено : 10 января 2023 г. 16:46:53(UTC)

Ранг: Опытный человек

Группы: Registered
Сообщений: 99

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 42 раз в 38 постах
Большое спасибо!
Информация и правда нужная и полезная!
Правда все же в реализации и в практике было бы куда проще переменный файл-флаг.
Например в корне ПО имеется пустой текстовый файл, который меняет свое имя в зависимости от событий (только основных, ключевых):
err.txt - какая-то ошибка, клиент не может начать просмотры (используем по принципу watch file exist - restart app)
stdby.txt - клиент залогинен и в ожидании. Баннер "Вы посмотрели все видео на..." (удобно использовать для технических рестартов с целью например проверки наличия обновлений)
view.txt - клиент смотрит киношку (не мешаем дабы не нарушать правила ПО)
и т.д.

Почему я уцепился за файл-флаг? Лог большой. Его нужно логически делить на старые события и на новые. Т.е. кронтаб должен перечитывать его, но учитывать только свежие события, причем при это учитывать возможные рестарты ПО. Таким образом код кронтаба становится и сложнее и длиннее в десятки раз.

В любом случае огромное спасибо, но если вдруг механизм флагов появится - цены ему не будет! Для простого обывателя на процесс пользования ПО они не окажут никакого влияния. 99% о них и знать не будут. Но для технарей - из польза неоценима!

Флаги не будут полноценной заменой детальным логам, особенно касательно баланса. Мы обязательно будем пользоваться этой информацией. Но в плане оперативного решения и проблем, и поддержания легиона клиентов в актуальном рабочем состоянии - они бесценны.
Admin
#6 Оставлено : 11 января 2023 г. 15:12:22(UTC)

Ранг: Администрация

Группы: Administrators
Сообщений: 108
Откуда: Россия

Сказал(а) «Спасибо»: 141 раз
Поблагодарили: 133 раз в 117 постах
DevilGenius написал:
...
Почему я уцепился за файл-флаг? Лог большой. Его нужно логически делить на старые события и на новые. Т.е. кронтаб должен перечитывать его, но учитывать только свежие события, причем при это учитывать возможные рестарты ПО. Таким образом код кронтаба становится и сложнее и длиннее в десятки раз.
...

Для избежания разрастания файлов и путаницы с событиями можем рекомендовать удалять файл log.core.txt перед каждым запуском экземпляра программы и/или по расписанию. Новый чистый файл будет создаваться заново автоматически.
DevilGenius
#7 Оставлено : 11 января 2023 г. 15:15:43(UTC)

Ранг: Опытный человек

Группы: Registered
Сообщений: 99

Сказал(а) «Спасибо»: 47 раз
Поблагодарили: 42 раз в 38 постах
Admin написал:
DevilGenius написал:
...
Почему я уцепился за файл-флаг? Лог большой. Его нужно логически делить на старые события и на новые. Т.е. кронтаб должен перечитывать его, но учитывать только свежие события, причем при это учитывать возможные рестарты ПО. Таким образом код кронтаба становится и сложнее и длиннее в десятки раз.
...

Для избежания разрастания файлов и путаницы с событиями можем рекомендовать удалять файл log.core.txt перед каждым запуском экземпляра программы и/или по расписанию. Новый чистый файл будет создаваться заново автоматически.

Да, такой вариант тоже рассматривался, но не были проведены тесты следит ли за целостностью данного файла ПО во время всего времени жизни или же только при запуске. Благодарю за совет! Это рабочий вариант.
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.