Прикрепите, пожалуйста, тестовый проект. Сюда или в ЛС форума
Завершаются потоки, почему не ясно
-
Добрый!
Не могу понять почему завешаются потоки (прекращают работать).
То работает пару часов, то за час, то 30 мин и все потоки сами закрываются.
в логах по сути чисто (нет ни чего значимого - по какой причине завершаются).
в настройках:
тип запуска: ПовторятьПри запуске выдает такое:
"
Скрипт запущен в 2 потоков и будет остановлен после 1000000 успешных выполнений или 1000000 неудачных выполнений или после использования всех ресурсов.
Вы можете изменить эти параметры в режиме записи.
"но в результате - эти 2 потока перестают перезапускаться в любой момент
// Как вообще можно отловить причины? В целом какая логика отладки подобных проблем? куда хоть смотреть, что искать итд
-
@truAlock Попробуйте логировать действия в самом скрипте, номер потока, что в данный момент делает, время запуска и остановки потока и так далее. По этой информации можете понять на каком именно моменте потоки останавливаются. Так же посмотрите на нагрузку системы.
-
@spacerange
да вот пробовал уже, не ясно ни чего. я грешил на то что в списке заканчиваются данные, ok. сделал проверку, сделал игнорирование ошибки и переход на обновление списке.лог после каждой операции не натыкаешь - а после всех "опасных" я натыкал и там все чисто.
процесс доходит до логического конца (конца скрипта), там стоит LOG('end'). в логе я end виже, а вот перезапуска в какой-то момент тупо не происходит и все. хотя обычно есть end в логе и происходит перезапуск -
@truAlock said in Завершаются потоки, почему не ясно:
@spacerange
да вот пробовал уже, не ясно ни чего. я грешил на то что в списке заканчиваются данные, ok. сделал проверку, сделал игнорирование ошибки и переход на обновление списке.лог после каждой операции не натыкаешь - а после всех "опасных" я натыкал и там все чисто.
процесс доходит до логического конца (конца скрипта), там стоит LOG('end'). в логе я end виже, а вот перезапуска в какой-то момент тупо не происходит и все. хотя обычно есть end в логе и происходит перезапускВозможно у вас ресурсы заканчиваются.
Когда у вас потоки останавливаются, что происходит? Появляется окно что скрипт остановлен? -
Вот опять, за ночь все завершилось.
[946629545] [01:11:05] Thread #2 : старт поток
[927717101] [01:11:05] Thread #2 : установка прокси
...
[703150414] [01:13:21] Thread #20 : end 0
[130872161] [01:13:21] Thread #20 : end thread ok
.....
[130872161] [01:13:54] Thread #2 : end thread ok
[01:13:54] Thread #2 : Thread succeeded with message "Ok"
[01:13:54] Script finished correctlyend thread ok
- это Log последний блок в "проекте"
то есть скрипт завершился на последнем блоке. в начале старта стоит Log(старт поток)
явно видно что просто все завершилось корректно дойдя до конца проекта, и новый поток просто не вызвался на создание.Выдержки из общего Script Report:
Success(1825)
Messages:
1825 - OkFails(21)
Fails And Rescued(584)Time Spent : 02:02:59
Final Message : Ended with message: All data have been processed for Task_resдальше,
Task_res обновляется каждые 15 минут.
в логе на серере есть данные что он запросился и обновился (видно по логу bas`а (тоже сообщение поставил)), в 00:26:52[00:26:19] Thread #8 : update task....
// Вопрос в тему, а как проверить что Task_res пустой? Это "рессурс", в котором лежит список. из него постоянно извлекаюся строки |notreuse установлен.
-
@spacerange
есть окошко что скрипт оставнолен, где общий лог выводится.
если реально кончаются рессурсы, то получается рессурс закончился без проверки через "проект" на его окончание - то есть я в проекте не могу отследить это (в многопотоке) -
@truAlock said in Завершаются потоки, почему не ясно:
@spacerange
есть окошко что скрипт оставнолен, где общий лог выводится.
если реально кончаются рессурсы, то получается рессурс закончился без проверки через "проект" на его окончание - то есть я в проекте не могу отследить это (в многопотоке)Скорее всего вам просто нужно более точно настроить параметры ресурса исходя из ваших потребностей. У вас есть настройка notreuse что значит скрипт каждую строку будет использовать 1 раз. На сколько понимаю так же есть настройка для обновления ресурса. Но там есть 2 настройки для обновления, одна добавляет новые строки в ресурс, другая сбрасывает использованные. (Если не ошибаюсь). Создайте список поменьше и поэкспериментируйте с этими настройками.
-
@spacerange
Да вот в том то и прикол, я сделал это список в 1 элемент, запустил 20 потоков - все норм работает, (не ждал 2 часа когда вырубится - но работает > 5 минут);
стандартный мой список - это 50+ элементов :/ -
Вопрос видимо решен.
https://community.bablosoft.com/topic/15867/правильное-обновление-рессурса/5- вроде помогло