Голый со мной, поскольку я полностью newb для кластера, и документация не щелкает меня.Node.js Cluster для обработки данных как можно чаще
if (cluster.isMaster)
{
for (let i = 0; i < numCPUs; i++)
{
cluster.fork();
}
for (const file in files)
{
cluster.workers.send(file); //***
}
}
else if (cluster.isWorker)
{
process.on("message", (msg) =>
{
//...Process data here...
});
}
*** это то, что я хочу. Что-то вроде cluster.workers.send (...), которое отправляет сообщение рабочим, а тот, кто не занят, примет сообщение. Если все рабочие заняты, сообщение будет ждать отправки, пока не появится свободный рабочий.
кластер узлов создаст несколько экземпляров ваших приложений. если вы хотите разрешить только одному кластеру выполнять одну задачу, вы можете использовать его с помощью redis и redlock npm module. используя этот модуль, вы можете разрешить только одному кластеру выполнять одно задание один раз среди нескольких кластеров. –
Я проверю redis и redlock, но есть ли способ, которым я могу достичь этого, не добавляя дополнительной зависимости? Это было бы предпочтительнее, если возможно, с не слишком большим шаблоном. – Arman