У меня есть эта функция, и она вызывается во время запуска моего узла-сервера в файле index.js. В функции init он устанавливает setInterval
, чтобы периодически звонить refreshKeyValues
, что занимает около 10 секунд. Я проверил некоторые тесты и отправил проверку работоспособности (простой вызов на конечную точку здоровья, возвращающий 200 ok), и казалось, что проверка работоспособности заблокирована при запуске refreshKeyValues
. setInterval
блокировка? Как сделать эту обновляющую логику запущенной на фоне, чтобы она не блокировала входящие запросы?Как сделать setInterval работает на фоне?
export default function initMyClient(server) {
server.clients.myclient = MyClient.createNewClient();
server.clients.myclient.init();
server.keyValues = getKeyValues();
function refreshKeyValues() {
server.keyValues = getKeyValues();
}
const refreshInterval = setInterval(
refreshKeyValues,
1000
);
server.on('close', function onClose() {
clearInterval(refreshInterval);
});
}
Как реализован 'getKeyValues ()'? Редко можно найти задачу с интенсивным процессором, которая занимает очень много времени. Кроме того, ваш период в коде выше 1 секунда, а не 10. – slebetman