@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
Запуск многопоточной функции Бас вылетает
-
Здравствуйте. Уже который раз пробовал организовать и воспользоваться функцией в многопотоке, но почему-то программа вся крашится. Пробовал разные настройки, разное исполнение скрипта, ничего не помогает. Подскажите, возможно не правильно как-то использую? Вот тестовый скрипт
-
@artihorror @forall Правильно, доходит до 300 - это закончило работу функция, мне нужно, чтобы с нее вышло и пошел скрипт работать дальше с обработаными ресурсами. Блок "Вышел с Претест" не выполняется....тоесть с функции не выходит а попросту закрвается вся программа(не всегда). Даже ставлю onlyfail - не помогает. Какими должны быть настройки,что когда данная функция обработала все данные, чтобы с функции выходило и продолжало работать дальше. Зделал было 2-е функции Одна на настройку и гет хттп другую на сокс5. Запускал функцию многопоток на 2 потока проверял если поток 2- проверяем хттп, 3-й сокс5. Скрипт тоже вылетает, даже не начинает работать.
-
Лог бесконечный:
~~BAS~LOG~~[.][black][994670042] [17:25:42] Поток №8 : Номер потока 8 число 300 ~~BAS~LOG~~[-][red][671086653] [17:25:43] Поток №8 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №9 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №10 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №11 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №12 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №13 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №14 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №15 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №16 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №17 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №18 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №19 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №20 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:48] Поток №21 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:49] Поток №2 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:49] Поток №3 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:49] Поток №4 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:49] Поток №5 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:49] Поток №6 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[-][red][671086653] [17:25:49] Поток №7 : Поток завершился с сообщением "Resource get error for Nunbers" ~~BAS~LOG~~[.][black][994292704] [17:25:49] Поток №1 : Вышел с Претест ~~BAS~LOG~~[+][green][17:25:49] Поток №1 : Поток выполнен успешно с сообщением "Ok"А почему? Потому, что у вас сверху стоит успешных 99999999999
А ресурса то уже нет. И это моментально отрабатывается. -
@forall Да спасибо, уже разобрался, что 1 поток это типа "сервисный", а дальнейшее управление скриптом и его настройки - это уже в функциях. Что при работе с многопоточными функциями, основной скрипт нужно в 1 поток с 1 упехом и 1 неудачей выставлять. тест numbers.txt