Я создал службу NodeJS, которая считывает сообщения из очереди ActiveMQ, настраивает их удаленно, получает эти сообщения, обрабатывает их и передает некоторые данные в графический интерфейс.
Проблема, с которой я сталкиваюсьпытается обработать эти сообщения на конце NodeJS, когда они поступают в быстром темпе в очередь ActiveMQ со скоростью прибл.5 сообщений (JSON) в секунду, и каждое сообщение JSON имеет размер около 18 КБ.Входящие сообщения записываются в файл, сохраняются в промежуточную таблицу MSSQL и после сохранения файл JSON перемещается в папку «Обработано».
Настройка среды:
- NodeJS версия 8.9.4.
- ActiveMQ версия 5.15.4.
- Java версия 1.8.0_171.
- Три основных рабочих процесса создаются вдоль основного процесса Node для обработкизагружается сообщение.
Рабочие создаются с помощью узла модуля "Рабочий пул".https://github.com/josdejong/workerpool
RAM: 2 GB
Processor: Intel Xeon Dual Core processor @2.27GHz
OS: Windows Server 2008 R2
Я продолжаю работать в Unhandled rejection Range Error: Out of Memory Exception
, после обработки около 3000 сообщений из очереди ActiveMQ, сообщения отправляются в очередь из внешнего источника с частотой 200 мс / сообщение.
Код:
message.readString('utf-8', function (err, body) {
fs.writeFile('/path/to/writefileto', JSON.stringify(body), function(err) {
if(err) {
// handle the error
} else {
/* if the file exists in the source path, move to a Processed path */
if(fs.existsSync('/path/writtento')) {
fs.rename('/path/writtento', '/path/to/processedDir', function(err) {
if(!err) {
console.log("Successful in moving the file to Processed path");
}
}
}
}
Что может быть причиной этой проблемы?
Пожалуйста, дайте мне знать, если требуется какая-либо другая информация.