Чтобы сделать второе приложение Node.js, который работает одновременно как ваш первый, вы можете просто создать другое приложение node.js, а затем запустить его с первого, используя child_process.spawn()
. Он может регулярно запрашивать внешний REST API и обновлять базу данных по мере необходимости.
Часть о «Передача данных клиентов для некоторых обновлений из REST API» не так ясно, что вы пытаетесь сделать.
Если вы используете socket.io для отправки данных в подключенные браузеры, то браузеры должны быть подключены к вашему веб-серверу, который, как я полагаю, является вашим первым процессом node.js. Чтобы второй процесс node.js вызывал передачу данных через соединения socket.io в первом процессе node.js, вам нужен способ межпроцессного взаимодействия. Вы можете использовать stdout и stdin через child_process.spawn()
, вы можете использовать некоторую функцию в своей базе данных или любой другой метод IPC.
Поскольку запрос API REST и обновление базы данных являются асинхронными операциями, они не занимают много центрального процессора процесса node.js. Таким образом, вам не нужно делать это в другом процессе node.js. У вас может быть только setInterval()
в вашем основном процессе node.js, каждый раз запрашивать API, обновлять базу данных при получении результатов, а затем вы можете напрямую обращаться к соединениям socket.io для отправки данных клиентам без использования отдельный процесс и какой-то механизм МПК.
Я собираюсь использовать socket.io для отправки данных клиенту (веб-странице). –
@bagusflyer - я добавил некоторую информацию в свой ответ, если вы используете socket.io для отправки данных в подключенные браузеры. – jfriend00
Спасибо @ jfriend00, хорошее предложение. –