node js Таймаут
-
Таймаут во время выполнения функции на встроенном языке
Либа string-similarity. Тестил только на ней.
Тестовый скрипт. Проверяется схожесть слов из списка.
При запуске в 250-260 потоков все срабатывает хорошо, поочередно и в том числе с циклами.
Запуск в 300 потоков - node js не срабатывает и выдает Таймаут.
Запуск в 300 потоков - перед выполнением кода в node выставлена небольшая пауза для потоков - срабатывает нормально.Запуск в 300 потоков , node обернул в игнорирование ошибок. Все 300 потоков падают в ошибку, далее сделан повтор выполнения в случае ошибки и перед повторным выполнением сделана такая же пауза как и в предыдущем случае - не работает. Вот этот момент самый интересный т.к. по идее все должно сработать так же как в предыдущем случае.
Основной скрипт. 250-300 потоков. Скрипт достаточно большой и действие node запрашивается не одновременно на всех потоках.
-
Предыдущая версия отчасти работает исправно, с игнорирование ошибки и повторении действия удается выполнить node за 2-3 минуты.... (то есть 1-3 раза получаю таймаут и на 4й раз успешно).
-
Скрипт запускает потоки пачками по несколько штук в течении часа. Как только потоков становится много (на глаз это примерно > 200) то начинаются те же проблемы с выполнением node.
Прикладываю тестовый скрипт, кто будет пробовать повторить - пробуйте несколько раз, один раз у меня во время первого запуска все сработало хорошо, а во всех остальных - нет.
0_1523028267350_test node.xml
0_1523028504429_вв.txt (список для сравнения)Надеюсь описал достаточно понятно)
-
-
@venom777 а таймаут увеличивали на блоке node js?
-
@DrPrime попробовал поставить 200 сек - не помогло, по дефолту стоит 60 сек видимо
по тестовому варианту можно подумать, что это происходит из-за большого количества одновременных обращений к node, но в основном скрипте одновременно выполняют это действие около 5 потоков
записал видео тестового варианта https://drive.google.com/file/d/1P5qgo7JJ87nWOjhzttO5a9tJSitUsRsx/view?usp=sharing
пока как-то так приходится работать
-
Думаю это всё таки баг. Но лучше уточнить у @support
Вот тестовый скрипт , который через node js выводит в лог слово test. Рандомная задержка происходит внутри node js:
function wait(ms) { var start = Date.now(), now = start; while (now - start < ms) { now = Date.now(); } } wait([[RANDOM_NUMBER]]) console.log("test")
Запуск в 258 потоков отрабатывает спокойно. А вот запуск в 259 потоков выводит все потоки в ошибку
Поток завершился с сообщением "Таймаут во время выполнения функции на встроенном языке"
Ещё заметил странность, я закрыл браузеры(обычные, не в BAS), закрыл второе окно BAS. И смог запустить свой тестовый скрипт в 268 потоков. Но опять же, запуск в 269 потоков крашит их всех.
Решил сделать запись с экрана, при включенной записи не даёт запустить больше 256, а без записи с экрана запускается до 269 потоков.
-
@Fox какое железо? Мб дело в нем
-
@SimpleUser Маловероятно, что у меня с @venom777 одинаковое железо. Что node js у меня и у него работает стабильно до 250 потоков, а дальше может совсем не запустится.
Я попробовал выделить ошибку в тестовом скрипте. У вас в нём какое максимально-рабочее количество потоков?