@gurkin4 у меня и у многих не в какую не робит
Как проверить что конкретные потоки активны?
-
Есть скрипт, который работает в двух независимых потоках
Один поток делает одну задачу, а второй поток делает совсем другую задачу.Иногда один из потоков кращится, в результате скрипт работает только в одном потоке. И только случайно (ну вздумалось мне развернуть свернутый скрипт и посмотреть что с ним) можно увидеть что скрипт работает как бы на половину.
Какой есть вариант чтоб проверить что оба потока включены и например если один из потоков крашнулись , то выполнить кубик воспроизведения звука?
Пока что вижу такой вариант: периодически писать в внешний txt файл с каждого потока данные или в глобальную переменную. И если давно не было записи конкретно для этого потока в глобалку или в txt файл , то выполняем кубик воспроизведения звука.
Есть еще более простые варианты, без таких костылей?
-
@Nikolas в поток добавь запись в бд текущего времени например раз в 5 минут.
Третим или вторым( как более стабильным) потоком стучись в базу данных периодически с фильтром (отобразить запись, которая была изменена более чем 5 минут назад). Если запись удалось получить - то значит поток, который должен был обновить эту запись - загнулся и можно отправить об этом уведомление в телегу -
@Nikolas said in Как проверить что конкретные потоки активны?:
Какой есть вариант чтоб проверить что оба потока включены и например если один из потоков крашнулись , то выполнить кубик воспроизведения звука?
Можно в основном потоке запускать функцию/функции в асинхронном режиме и периодически в цикле проверять статус потоков.
@UserTrue said in Как проверить что конкретные потоки активны?:
@Nikolas Обернуть функцию в которой выполняется код потока в игнор ошибок
Я могу написать функцию так, что не то что поток упадет, а сам BAS упадет с грохотом.
Тут игнорирование ошибки не поможет. Правда и любые другие реализации задачи тоже не помогут. -
@sergerdn said in Как проверить что конкретные потоки активны?:
Тут игнорирование ошибки не поможет. Правда и любые другие реализации задачи тоже не помогут.
Вот именно, да и такого не должно быть в нормальном скрипте. Самый простой и правильный способ это обычный игнор ошибок, все остальное оверхэд.

-
@UserTrue said in Как проверить что конкретные потоки активны?:
Вот именно, да и такого не должно быть в нормальном скрипте.
Конечно не должно.
Но я видел совсем разные скрипты, иногда создается впечатление, что люди код пишут точно не руками, а пятой точкой 😂