NodeJS: обратные вызовы и обмен данными через кластерные процессы
Я разрабатываю приложение NodeJS, которое выполняет интенсивные вычисления, которые обычно занимают все время процессора, что приводит меня к разделению его в отдельном дочернем процессе через Node. cluster
библиотека.
В идеале я хотел бы иметь возможность как-то настроить Promise
который отправляет сообщение в вычислительный процесс и разрешает, когда вычисление сделано так, чтобы я мог асинхронно await
это при продолжении другой работы в процессе вызова.
Я знаком с cluster
система обмена сообщениями библиотеки, но, учитывая, что в качестве единственного способа передачи данных между процессами (насколько я знаю), я мог бы предположить, что решение будет включать в себя отправку сообщения в вычислительный процесс с уникальным идентификатором, а затем постоянно проверять, если сообщение было отправлено обратно с данными. Это звучит неприлично и что-то плохое.
Проще говоря, существуют ли библиотеки, которые могут справиться с этим? Примеры? Хорошая практика, чтобы обойти эту проблему?