node js Таймаут



  • Таймаут во время выполнения функции на встроенном языке

    Либа string-similarity. Тестил только на ней.

    Тестовый скрипт. Проверяется схожесть слов из списка.
    При запуске в 250-260 потоков все срабатывает хорошо, поочередно и в том числе с циклами.
    Запуск в 300 потоков - node js не срабатывает и выдает Таймаут.
    Запуск в 300 потоков - перед выполнением кода в node выставлена небольшая пауза для потоков - срабатывает нормально.

    Запуск в 300 потоков , node обернул в игнорирование ошибок. Все 300 потоков падают в ошибку, далее сделан повтор выполнения в случае ошибки и перед повторным выполнением сделана такая же пауза как и в предыдущем случае - не работает. Вот этот момент самый интересный т.к. по идее все должно сработать так же как в предыдущем случае.

    Основной скрипт. 250-300 потоков. Скрипт достаточно большой и действие node запрашивается не одновременно на всех потоках.

    1. Предыдущая версия отчасти работает исправно, с игнорирование ошибки и повторении действия удается выполнить node за 2-3 минуты.... (то есть 1-3 раза получаю таймаут и на 4й раз успешно).

    2. Скрипт запускает потоки пачками по несколько штук в течении часа. Как только потоков становится много (на глаз это примерно > 200) то начинаются те же проблемы с выполнением node.

    Прикладываю тестовый скрипт, кто будет пробовать повторить - пробуйте несколько раз, один раз у меня во время первого запуска все сработало хорошо, а во всех остальных - нет.
    0_1523028267350_test node.xml
    0_1523028504429_вв.txt (список для сравнения)

    Надеюсь описал достаточно понятно)

    0_1523039216591_upload-5fd12c60-8c8a-4d0a-8767-a093c1106013



  • @venom777 а таймаут увеличивали на блоке node js?



  • @DrPrime попробовал поставить 200 сек - не помогло, по дефолту стоит 60 сек видимо

    по тестовому варианту можно подумать, что это происходит из-за большого количества одновременных обращений к node, но в основном скрипте одновременно выполняют это действие около 5 потоков

    записал видео тестового варианта https://drive.google.com/file/d/1P5qgo7JJ87nWOjhzttO5a9tJSitUsRsx/view?usp=sharing

    пока как-то так приходится работать
    0_1523040437063_upload-2eb34a2d-a104-44d2-a078-1dc1daab56ff


  • administrators

    Думаю это всё таки баг. Но лучше уточнить у @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 потоков.

    0_1523046998770_на форум5.gif

    0_1523046783606_upload-93308a06-0dc6-49a0-9369-f6b85a30fdbd



  • @Fox какое железо? Мб дело в нем


  • administrators

    @SimpleUser Маловероятно, что у меня с @venom777 одинаковое железо. Что node js у меня и у него работает стабильно до 250 потоков, а дальше может совсем не запустится.

    Я попробовал выделить ошибку в тестовом скрипте. У вас в нём какое максимально-рабочее количество потоков?



  • UP Проблема актуальна 0_1530732709799_11c61fb6-1d46-479b-a941-b83c50a6abee-image.png



  • @venom777 Привет,у меня сейчас похожая задача нужно удалить дубликаты из списка.Я так понял твой скрипт удаляет дубликаты из списка?можешь подсказать как ты решил эту задачу?


  • administrators

    @assd Тебе нужно удалить дубликаты из списка. А @venom777 искал возможность Сравнения двух словосочетаний (морфология, синтаксис, семантика...). Вот его тема с задачей. А в этой теме обсуждались уже побочные проблемы связанные с использование node js.