@Fox Привет.Я описывал задачу в этой теме https://community.bablosoft.com/topic/27417/вызов-многопоточной-функции
Дело в том,что я не могу вообще никак перевести свой скрипт на многопоток,у меня тупо,что в вызове функции в многопоток,что просто обычный многопоток,выполняет свою работу с данными по очереди,а не одновременно.И это очень сильно бьет по времени,а нужна именно скорость обработки.Все уже готово и скрипт рабочий полностью,но скорость обработки заставила воспользоваться многопотоком.Ранее,подобных проблем не замечал,а сейчас элементарную задачу не могу уже несколько дней решить.
Скрипт очень простой и работает без браузера вообще,в скрипте используется только одно взаимодействие с гет запросом.Пример скрипта я приложил в этой теме(но без запросов),он точно почти такой же,как и основа.
Логика такова:
1)Запускается скрипт (без всяких ресурсов изначально и данных) и создаются два ресурса.
2)Делается запрос на сайт,который обрабатывается в отдельной функции,т.е. обрабатывает полученные строки и записывает в ресурс.
3)Вызывается функция в несколько потоков,которая работает (должна работать) с каждой строкой из созданного ранее ресурса(уникальной)в отдельном потоке.Данные обрабатываются и записываются во второй ранее созданный ресурс.
4)Как только данные обработаны,ресурс переводится в список и список записывается в файл.Более ничего не делается.
-Сперва я думал,что проблема в создаваемых в ходе работы ресурсах,но нет.Создавал изначально ресурсы и то же самое было.
-Потом пробовал брать из файлов значения\потом создавать файлы по ходу и из них брать данные\сохранять напрямую пытался и.т.д
-Возможно думал стоят какие то ограничения из за слабого пк с 4 гб оперативы и взял сервер с 64 гб,но как обрабатывалась строка за 5 минут на моем пк,так же по скорости и на серваке.Ладно, с этим я уже ничего не поделаю из за регулярок в проекте,согласен.Но вот перевести на поток и хотя бы по 10 строк одновременно обрабатывать,очень бы помогло.А сейчас в любом случае,у меня,сколько бы потоков не выставил - работает все равно как один,просто по очереди разный поток берет свои данные(
[Решено] Node process stopped, ws в многопотоке
-
Работа с ws запущенная в несколько потоков выдает ошибку

В один поток всё выполняется

Версия BAS: 21.9.2
Тестовый скрипт: 0_1564734054080_test_ws.xml -
@socialdog, test_ws.xml
-
@GhostZ said in [Решено] Node process stopped, ws в многопотоке:
@socialdog, test_ws.xml
Где то я видел уже этот код.. Gans это ты?
А по факту можно не использовать глобальные переменные в ноде и проблем не будет.
Либо использовать объект, в OnApplicationStart объявить глобальную переменную:ws = {}А в потоках уже использовать
ws[ [[THREAD_INDEX]] ] = new WebSocket("wss://echo.websocket.org/", { origin: 'https://websocket.org' }); -
@Fox said in [Решено] Node process stopped, ws в многопотоке:
Gans это ты?
Нет
@Fox said in [Решено] Node process stopped, ws в многопотоке:
Либо использовать объект, в OnApplicationStart объявить глобальную переменную
Я так и делаю


-
@GhostZ said in [Решено] Node process stopped, ws в многопотоке:
@Fox said in [Решено] Node process stopped, ws в многопотоке:
Либо использовать объект, в OnApplicationStart объявить глобальную переменную
Я так и делаю


Хорошо, но в приложенном скрипте этого нет. По этому я предложил такое решение.
-
@Fox, Я просто нашёл этот скрипт у себя
@GhostZ said in [Решено] Node process stopped, ws в многопотоке:Тестовый скрипт: 0_1564734054080_test_ws.xml
проверил работу и скинул, как там сделано я даже не смотрел)
-
У меня тоже проблема node process stopped, обнаруживается в режиме запуска, из-за этого не получается её дебажить так как лог пишет только в режиме записи. Может кто-то писал обработчик ошибок или знает как выявить баг, поделитесь, пожалуйста. Использую модуль request, делал разные переменные для каждого потока, не помогло. Быть может, что переменные спарсенных значений тоже должны быть индивидуальными для каждого потока?
-
@graf said in [Решено] Node process stopped, ws в многопотоке:
ебажить так как лог пишет только в режиме записи. Может кто-то писал обработчик ошибок или знает как выявить баг, поделитесь, пожалуйста. Использую модуль request, делал разные п
Стопается из-за умирание процесса ноды после ошибки. Ошибки есть в node_log.txt