Да очень просто, как по мне , так даже удобней чем логи копать.
После каждого ошибка-опасного действия втавляю кубик с запросом в котором записываю в базу № потока и № этого самого кубика который запрос делает. В конце скрипта (точнее в конце потока) делаю запрос к базе удаляю все записи которые относятся к этому потоку(по № потока).
Если поток отработал правильно, дошел до конца, он удаляет из базы все свои записи.
Если поток отвалился, соответственно запрос на удаление не сделал, записи в базе остались.
Таким образом в базе остаются только записи отвалившихся потоков.
Screenshot from 2021-11-01 18-17-14.png
смотрю на последнюю запись отвалившегося потока, ищу (поиском) по номеру кубика нужный кубик, вижу где скрипт отвалился. Думаю почему, исправляю, пробую дальше
Поток завершился с сообщением "Task id not found"
-
Происходит на кубике Node.js. Он расположен внутри многопоточной функции. Происходит в режиме Запуск. Подавляющее большинство потоков проходит без ошибок, но иногда вываливается вот это. Я подозреваю, что это может быть как-то связано с ActionFinder, но в открытом доступе код полугодовой давности, и про Node.js там ничего нет. Буду, конечно, пробовать разные пересоздания кубиков и проч., но надо бы поправить. Если надо, могу скрипт @support в личку скинуть. Вообще, с Node.js много проблем, многие решил, но костыли...
-
@daemons said in Поток завершился с сообщением "Task id not found":
о костыли...
Удалось решить проблему?
-
@atomexpert Столкнулся с подобной проблемой, долго ломал голову над решением. Оказалось все просто. Если использовать в кубике NodeJS в цикле forEach вызов методов BAS API "BAS_API(
some code)" то кубик завершается с ошибкой "Task id not found". Если в цикле необходимо использовать вызов BAS API, то цикл forEach можно заменить на цикл for и использовать await для вызова API -
@lovipomidorku said in Поток завершился с сообщением "Task id not found":
@atomexpert Столкнулся с подобной проблемой, долго ломал голову над решением. Оказалось все просто. Если использовать в кубике NodeJS в цикле forEach вызов методов BAS API "BAS_API(
some code)" то кубик завершается с ошибкой "Task id not found". Если в цикле необходимо использовать вызов BAS API, то цикл forEach можно заменить на цикл for и использовать await для вызова APIЗапускать функции BAS параллельно из node.js нельзя, только последовательно. Представьте, что вы запустить несколько действий движения мыши в разные точки. Куда должна двигаться мышь?
-
@Fox Я использовал вызов модуля
loggerчерез BAS_API в NodeJS в цикле ForEach. В этом была проблема. Если использовать цикл for - проблемы нет.С другой стороны, если использовать в цикле forEach вызов BAS_API(
log("sometext")) такой проблемы нет.