Не работает в многопоточном режиме скрипт написанный в node.js



  • Уже несколько дней пытаюсь понять, как запустить код написанный на node.js в многопоточном режиме. Использую враппер из этой темы Программирование ботов на node.js . Если все действия написать копируя действия из кубиков в node.js , то потоки выполняются корректно. При попытке запустить код, использующий функции из другого файла, корректно отрабатывает только 1 поток, все остальные виснут и заканчиваются "Поток №3 : Поток завершился с сообщением "Таймаут во время выполнения функции на встроенном языке""
    Я уже пробывал оборачивать действия в кусок кода для синхронизации, пробывал с await и без, никак(. Подскажите как можно данный скрипт запустить в многопотоке. Скрипт приклыдываю. Спасибо большое
    0_1562683339346_nodejs_wrapper.xml



  • ООо, сразу не поискал, очень похоже на мою же проблему: https://community.bablosoft.com/topic/8469/проблемы-с-вызовом-bas_api-file-search-из-node-js



  • Наверное мало кто пишет на node.js скрипты без использования кубиков, поэтому 2 месяца игнор данной проблемы. Мне от этих кубиков еще со времен зенки тошнит. Я лучше нужный мне кубик или же последовательность кубиков, переведу в node и оберну в функцию для вызова одной строчкой. Для себя нашел решение проблемы следующее, это не использовать дополнительные файлы а весь код пихать в один файл. С этим решением "через жопу" есть ряд проблем:

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

    • до этого писал на питоне и прывык к тому что все фреймворки и обертки самописные лежат у меня в отдельных файлах а сами скрипты всегда компактны и умещаются на 1-2 страницах. Я бы с удовольствием писал бы все это дело в коком нибудь ide, в том же visual studio code, чем ковыряться в басе с кодом, который явно ориентирован на любителей кубиков

    Вопрос к разработчику или к саппорту:
    зачем вообще ввели возможность подключать дополнительные файлы при разработке на node.js, если корректно это работает только в однопоточном режиме? Если же есть какой то способ заставить отрабатывать корректно в многопотоке, буду очень признателен если покажите на примере моего скрипта как это сделать. Я перепробывал уже все варианты. Спасибо



  • @serrgo Скорей всего проблема в том, что бас запускает только один процесс ноды. Вряд ли что-то толковое из этого выйдет к сожалению.


Log in to reply