Завершаются потоки, почему не ясно



  • Добрый!
    Не могу понять почему завешаются потоки (прекращают работать).
    То работает пару часов, то за час, то 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 correctly

    end thread ok

    • это Log последний блок в "проекте"

    то есть скрипт завершился на последнем блоке. в начале старта стоит Log(старт поток)
    явно видно что просто все завершилось корректно дойдя до конца проекта, и новый поток просто не вызвался на создание.

    Выдержки из общего Script Report:

    Success(1825)
    Messages:
    1825 - Ok

    Fails(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+ элементов :/




Log in to reply
 

  • 2
  • 4
  • 3
  • 4
  • 15
  • 2
  • 3
  • 6