Актуальное количество работающих потоков - как узнать?
-
Часть из потоков находится в "сон". Некоторые на 10-15 минут. По логу само собой не разберешься сколько потоков всё же ещё работает (в том числе сон). Нет ли функции позволяющей это узнать?
-
Используй глобальную переменную. Например, в начале работы сохраняешь туда количество запущенных потоков. Перед тем как поток уходит в сон, уменьшаешь значение этой переменной на 1. После "сна" - опять прибавляешь на 1. Можно выделить отдельный поток, который через определенное время будет выводить значение этой переменной в лог. Таким образом всегда будешь знать актуальное количество запущенных потоков.
-
@bratishka не будет так работать. Мне не важно во "сне" он или в работе - он активен, а не вывалился.
Запустил 20 потоков. Через час повываливалось половина. Как это отследить? Я вижу только 1 вариант - должен быть какой то опрос работает ли поток (поток спит это тоже считай в работе). Через переменные не получится, ты же не знаешь в какой момент "крашится" поток. А они именно крашатся.
ps решение для себя нашел хоть и не очень удобное.
-
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
@bratishka не будет так работать. Мне не важно во "сне" он или в работе - он активен, а не вывалился.
Запустил 20 потоков. Через час повываливалось половина.
Херней страдаешь, надо сразу так делать, чтобы 24/7 все крутилось без отвала.
-
@FastSpace согласен. но что то где то отваливается. пока причина не найдена нужно решение. я его для себя нашел, но за ним приходится искать вот что ещё. если можешь помочь - подскажи.
-
@FastSpace т.е. потоки крашатся (через сутки двое +- ) как будто то нажато "остановить ждать каждый поток".
Цикл потока около 30 минут. Т.е. он за это время десятки раз перезапускается, но в какой то момент что то случается...
-
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
@FastSpace согласен. но что то где то отваливается. пока причина не найдена нужно решение. я его для себя нашел, но за ним приходится искать вот что ещё. если можешь помочь - подскажи.
Подсказал.
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
@FastSpace т.е. потоки крашатся (через сутки двое +- ) как будто то нажато "остановить ждать каждый поток".
Цикл потока около 30 минут. Т.е. он за это время десятки раз перезапускается, но в какой то момент что то случается...Не замечал именно краш потоков. У меня все хорошо.
Есть краш целиком BAS если вечный быстрый цикл.
Есть случаи зависание потоков: Ошибки рендера страницы, ip-api в действие прокси, таймауты браузерных элементов на странице заглушке, багованный пдф и т.д. Таких случаях около 10, я их все выловил и закостылил.
-
@FastSpace said
Подсказал.
Увидел. Спасибо. Не пойдет. Буду искать где крашится. Но хз смогу ли найти. Ладно бы вылетал по ошибке или ресурс кончался ... ни то ни то, я говорю, как будто просто в скрипте нажали "остановить --> ждать каждый поток"
-
@FastSpace said
Есть случаи зависание потоков: Ошибки рендера страницы, ip-api в действие прокси, таймауты браузерных элементов и т.д. Таких случаях около 10, я их все выловил и закостылил.
Ну вот сходу скажу у меня похоже на то что поток закончил очередной цикл а рестарт не делает. И так они поочереди отваливаются в течение длительного времени...
-
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
@FastSpace said
Есть случаи зависание потоков: Ошибки рендера страницы, ip-api в действие прокси, таймауты браузерных элементов и т.д. Таких случаях около 10, я их все выловил и закостылил.
Ну вот сходу скажу у меня похоже на то что поток закончил очередной цикл а рестарт не делает. И так они поочереди отваливаются в течение длительного времени...
Это может быть еще ошибка логики шаблона, поток упал в вечный цикл.
-
@FastSpace said in Актуальное количество работающих потоков - как узнать?:
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
@FastSpace said
Есть случаи зависание потоков: Ошибки рендера страницы, ip-api в действие прокси, таймауты браузерных элементов и т.д. Таких случаях около 10, я их все выловил и закостылил.
Ну вот сходу скажу у меня похоже на то что поток закончил очередной цикл а рестарт не делает. И так они поочереди отваливаются в течение длительного времени...
Это может быть еще ошибка логики шаблона, поток упал в вечный цикл.
Поток выполнен успешно с сообщением "Ok"
и дальше ничего
так что нет...
-
тем более у меня в конце скрипта в лог выодится "подтверждаю. закончил."
и вот это тоже выводится. а рестарта нет.
-
@kuzkuz Не забыли случаем)
-
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
тем более у меня в конце скрипта в лог выодится "подтверждаю. закончил."
и вот это тоже выводится. а рестарта нет.Хз, с этим проблем действительно нет. Поток всегда четко рестартует.
Возможно с ресурсами проблема.
-
@DoctorKrolic said in Актуальное количество работающих потоков - как узнать?:
@kuzkuz Не забыли случаем)
Само собой у меня повторять. Потоки выполняют по 30-100 циклов и потом нет рестарта.
-
@FastSpace said in Актуальное количество работающих потоков - как узнать?:
@kuzkuz said in Актуальное количество работающих потоков - как узнать?:
тем более у меня в конце скрипта в лог выодится "подтверждаю. закончил."
и вот это тоже выводится. а рестарта нет.Хз, с этим проблем действительно нет. Поток всегда четко рестартует.
Возможно с ресурсами проблема.Само собой и ресурсы проверил. Всё есть, сполна.
И у меня потоки четко рестартуют. Но хватает на пару суток.
-
@kuzkuz Можно долго и бессмысленно гадать, прикладывайте тестовый проект
-
ещё раз. смотрите.
потоки не рестартуют примерно через 2е суток (после 30-100 циклов каждого, у всех разное кол-во циклов).
вижу что вместо 20 работает 5, останавливаю принудительно, делаю запуск и пошло поехало снова норм на пару суток.
думаю это говорит о том что нет проблем с ресурсами точно.
-
А когда Неудач(0) становится больше заданного количества не отваливаются ли потоки как раз?
-
@kuzkuz , конечно, скрипт останавливается, если превышает лимит ошибок. Это также, как если стоит выполнять 100 раз и после 100 успехов остановка.