Умные идеи

Sherminator

Client
Регистрация
10.09.2021
Сообщения
1 672
Реакции
967
Баллы
113
Доброго времени суток, ситуация следующая, работаю в многопотоке с БД, из БД берутся профили и прокси, у них там статус есть free или busy, так вот последнее время участились самопроизвольные перезапуски zennodroid, в итоге прокси и профили остаются в базе в статусе busy, шаблон то не завершил работу. Так вот вопрос, чё такого придумать что бы при вылете ЗД происходили определенные действия (освобождение проксей на пример)? Первое что пришло на ум, это консольную прилку написать которая процесс ЗД мониторит работает он или нет, но у меня такое ощущение что перезапуск происходит настолько быстро что даже процесс не пропадает. Мб кто умных идей насыпет ?)
 
можно таймер обратного отсчета сделать, как только берет данные сразу таймер (по таймштамп) устаналиваем, если не поступило обратной связи через n-ое количество секунд то ставим статус free, т.е. скрипт постоянно обновлят таймштамп и не дает перейти в статус free
 
  • Спасибо
Реакции: orka13 и Sherminator
можно таймер обратного отсчета сделать, как только берет данные сразу таймер (по таймштамп) устаналиваем, если не поступило обратной связи через n-ое количество секунд то ставим статус free, т.е. скрипт постоянно обновлят таймштамп и не дает перейти в статус free
Спасибо, гуд идея, проще просто ещё одно поле в БД добавить типа время во сколько был установлен статус busy и просто в шабе добавить что бы когда он брал прокси, заодно чекал другие прокси и если какая то прокся занята больше 10 минут на пример, ставил ей статус free
 
Как вариант, делать "высвобождение" строк, у которых "время в работе" больше определенного числа. Условно, цикл обычно отрабатывает за 10 минут, если busy больше получаса, значит, с вероятностью 99% подвисший. В начале работы делаешь запрос на смену статусов на free всем, у которых прошло больше получаса (время условное, исходишь из своих данных). Соответственно, при начале работы не только меняешь статус на busy, но и в отдельную ячейку записываешь время взятия. При индексе у столбца запрос "высвобождения" выполнится за доли секунды.
ps. Пока писал, именно так и придумал, смотрю )))
 
  • Спасибо
Реакции: Sherminator
Ещё вариант - в таблице сделать поле "дата последнего запуска" и если строка "занята" и "дата последнего запуска" > 2 часов, тогда можно брать такую строку тоже.
 
Ещё вариант - в таблице сделать поле "дата последнего запуска" и если строка "занята" и "дата последнего запуска" > 2 часов, тогда можно брать такую строку тоже.
Уже реализовал похожее, сделал в бд у прокси дополнительную колонку с временем когда был установлен статус busy, ну и шаб периодически проверяет нету ли в БД прокси у которых статус busy был установлен больше 30 минут назад
 
я просто сделал статическое поле которое которое отслеживает старт работы шаблона, при старте чекаю строки на busy в БД, если таковы имеются это 100 процентов, что Зина упала при работе
117477
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)