Есть ли способ сохранить сообщения узла sends (js) в порядке - PullRequest
0 голосов
/ 26 января 2019

Используя некоторые дополнительные проверки последовательности ниже, я вижу, что сообщения иногда приходят не по порядку, и это нарушает код. Я думаю, что я должен поставить в очередь сообщения о нарушении порядка после получения, чтобы убедиться, что все обрабатывается в порядке. Это просто природа NodeJS?

// In the master process:
msg.sequence = next_sequence[i]++;
worker[i].send(msg)

// In worker(s):
process.on("message",handler);
....
var last_sequence = 0;
function handler(msg){
if ( last_sequence + 1 != msg.sequence ) console.log(...);
last_sequence = msg.sequence;

1 Ответ

0 голосов
/ 28 января 2019

После использования send (JSON.stringify (msg)) и JSON.parse при получении поведение кажется более детерминированным, и порядковые номера сообщений расположены по порядку.

Таким образом, кажется, что send () не копирует данные сразу, и их все же можно изменить некоторое время после вызова send ().

Кто-нибудь может это подтвердить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...