Ошибка возникает при гет-запросах. Айди у нее нет.
Это может быть ответ сервера или все-таки ошибка Баса, так как речь идет о потоке?
Thread ended with message "All data have been processed for ..."
-
@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 должен проверить наличие ресурсов до запуска потока и не запускать его вовсе, если ресурсы пустые.
-
Не могу понять пока в чем проблема, было лень скачивать и набросал всё то же, и у меня результат такой


По опыту эта проверка всегда в момент обращения к ресурсу, тоесть там может быть 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 ...":
Сейчас скачаю скрипт что бы попробовать понять что не так
Проблема с каким сообщением скрипт закончил работу, у тебя он так же, как и у меня закончил с ошибкой.
-
@DrPrime said in Thread ended with message "All data have been processed for ...":

вот причина, на момент проверки ресурсы есть - в момент получения остальные потоки завершили работу и ресурс удалился.
Предположение о проверке до запуска потока развенчано
Ок, не вопрос, предположу, что ты прав и BAS работает не так, как я написал выше.
Как избежать такого? Цель поста НЕ выяснить почему BAS так себя ведет, а выяснить как сделать так, чтобы скрипт не завершался с ошибкой.
-
@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 обновлять информацию о ресурсе мгновенно, а не когда поток завершит свою работу.


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 ...":
Изначально у меня была проблема в том, что когда я смотрел на логи, несмотря на то, что в логах был номер кубика, я прошляпил этот момент