Thread ended with message "All data have been processed for ..."

Поддержка
  • Run Type - Repeat. Может по этому скрипт перезапускается?

  • @gaget007 said in Thread ended with message "All data have been processed for ...":

    Run Type - Repeat. Может по этому скрипт перезапускается?

    Скрипт не перезапускается.
    Задача как раз стоит запускать новые потоки, пока есть доступные данные в ресурсе:
    Script will be constantly repeated infinitely or until data for any resource will be exhausted, or until "End Script" will be executed.

    Проблема в том, что BAS сначала запускает поток, потом проверяет есть ли ресурсы и далее передает управление моему коду.
    Если ресурсов нет, то завершает поток с ошибкой до передачи управления моему коду.

    Вероятно, BAS должен проверить наличие ресурсов до запуска потока и не запускать его вовсе, если ресурсы пустые.

  • Не могу понять пока в чем проблема, было лень скачивать и набросал всё то же, и у меня результат такой

    image.png

    image.png

    По опыту эта проверка всегда в момент обращения к ресурсу, тоесть там может быть 5 минут работы потока и когда он обратится к ресурсу - только тогда будет прерван скрипт.
    Сейчас скачаю скрипт что бы попробовать понять что не так

  • @DrPrime said in Thread ended with message "All data have been processed for ...":

    По опыту эта проверка всегда в момент обращения к ресурсу, тоесть там может быть 5 минут работы потока и когда он обратится к ресурсу - только тогда будет прерван скрипт.

    Нет, я написал скрипт, который демонстрирует, что BAS проверяет есть ли в ресурсе данные ДО запуска самого кода в потоке, то есть ДО обращения к ресурсу, который пустой.

    @DrPrime said in Thread ended with message "All data have been processed for ...":

    Сейчас скачаю скрипт что бы попробовать понять что не так

    Проблема с каким сообщением скрипт закончил работу, у тебя он так же, как и у меня закончил с ошибкой.

  • image.png

    вот причина, на момент проверки ресурсы есть - в момент получения остальные потоки завершили работу и ресурс удалился.

  • @DrPrime said in Thread ended with message "All data have been processed for ...":

    image.png

    вот причина, на момент проверки ресурсы есть - в момент получения остальные потоки завершили работу и ресурс удалился.

    Предположение о проверке до запуска потока развенчано

    Ок, не вопрос, предположу, что ты прав и BAS работает не так, как я написал выше.

    Как избежать такого? Цель поста НЕ выяснить почему BAS так себя ведет, а выяснить как сделать так, чтобы скрипт не завершался с ошибкой.

  • как вариант onlyfail для ресурса и игнор ошибок

  • можно так же вручную удалять ресурсы что бы быстрее обновлялась инфа о свободных ресурсах

  • @DrPrime said in Thread ended with message "All data have been processed for ...":

    можно так же вручную удалять ресурсы что бы быстрее обновлялась инфа о свободных ресурсах

    Проблема удаления из ресурса в том, что даже если ресурс настроен как только для чтения, BAS файла удаляет из файла данные, а это мне не нужно.

  • Удаляй без галочки, он просто удалит его из системы ресурсов

  • @DrPrime said in Thread ended with message "All data have been processed for ...":

    Удаляй без галочки, он просто удалит его из системы ресурсов

    Спасибо большое, я решил свою проблему.

    Изначально у меня была проблема в том, что когда я смотрел на логи, несмотря на то, что в логах был номер кубика, я прошляпил этот момент и строил гипотезы, которые ни на чем не основаны.

    Также, я прошляпил галку при удалении ресурса, чтобы он не сносил его с файла, я тестировал этот вариант, зачем я все время ставил галку - сам не знаю. И еще сидел удивлялся какого фига файл очищается в конце работы.

    Ниже комбинация кода, которая заставляет BAS обновлять информацию о ресурсе мгновенно, а не когда поток завершит свою работу.

    Capture.PNG
    Capture_1.PNG

    P.S.
    Глобальный вывод из этого топика, что я сделал - надо отдыхать.

  • @sergerdn said in Thread ended with message "All data have been processed for ...":

    Задача как раз стоит запускать новые потоки, пока есть доступные данные в ресурсе:

    Я наподобие такого делал так. Создал асинхронную функцию с лимитом в 1 поток, которая в бесконечном цикле запускала импорт аккаунтов в базу.

    Режим запуска - "Повторять".

    Пока акки есть в базе, потоки их берут. Когда их нет, скрипт просто в бесконечном же цикле их ожидает.

  • @thepappo said in Thread ended with message "All data have been processed for ...":

    @sergerdn said in Thread ended with message "All data have been processed for ...":

    Задача как раз стоит запускать новые потоки, пока есть доступные данные в ресурсе:

    Я наподобие такого делал так. Создал асинхронную функцию с лимитом в 1 поток, которая в бесконечном цикле запускала импорт аккаунтов в базу.

    Режим запуска - "Повторять".

    Пока акки есть в базе, потоки их берут. Когда их нет, скрипт просто в бесконечном же цикле их ожидает.

    Спасибо, что поделился.
    У меня основная проблема была - "я смотрел в книгу, а видел фигу"

    @sergerdn said in Thread ended with message "All data have been processed for ...":

    Изначально у меня была проблема в том, что когда я смотрел на логи, несмотря на то, что в логах был номер кубика, я прошляпил этот момент