Обработка ошибок Jxcore в Для узлов с несколькими запросами

Я запускаю код nodejs (server.js) как jxcore, используя jx mt-keep:4 server.js

у нас много запросов в секунду, и в основном происходит транзакция. Я ищу способ отловить ошибку, если какой-либо поток умирает, и информация о запросе возвращается мне, чтобы я мог перехватить этот запрос и предпринять соответствующие действия на его основе. Таким образом, в этом я не могу потерять входящий запрос и обработаю его.

Это проект nodejs, и из-за срочности проекта был перемещен в jxcore. Пожалуйста, дайте мне знать, если есть способ справиться с этим даже на уровне кода.

1 ответ

На самом деле это похоже на один экземпляр Node.JS. У вас есть те же инструменты и опции для обработки ошибок.

Кроме того, поток JXcore предупреждает очередь задач, когда ловит неожиданное исключение на земле JS (очередь задач перестает отправлять запросы обратно в этот экземпляр), а затем безопасно перезапускает конкретный поток. Вы можете прослушивать "неперехваченное исключение", "перезапускать" события для потока и управлять более мягким перезапуском.

process.on('restart', res_cb, exit_code){
  // thread needs a restart (due to unhandled exception, IO, hardware etc..)
  // prepare your app for this thread's restart
  // call res_cb(exit_code) for restart. 
});

Примечание: JXcore ожидает, что приложение запущено и работает не менее 5 секунд, прежде чем перезапускать какой-либо поток. Возможно, это ограничение защищает приложение от циклического перезапуска потока.

Вы можете запустить свое приложение, используя 'jx monitor', оно поддерживает многопоточность и перезагружает сбойные процессы.

Другие вопросы по тегам