170 похожих чатов

Господа, а такой немного нубский вопрос. Есть демон на ноде, слушает

события от внешнего сервиса. События имеют одним из параметров UUID. Но вполне реальная ситуация, когда может прийти много РАЗНЫХ событий, но с одним UUID. Абсолютно валидная ситуация. Проблема в том, что мне нужно зарегистрировать это событие на другом сервисе, но только 1 раз для одного uuid.
Регистрация события - просто URL вызов.
Пока сделал так, что при получении события создаю некий кэш, в который складываю связку UUID события - Promise
Но, судя по всему, события приходят быстрее, чем успевают складываться в кэш.
Т.е. у меня сейчас конструкция типа
createEntity = (uuid, cache) => {
let entity = cache.get(uuid)
if (entity) {
return entity;
}
entity = new Promise((res, rej) => {
...
}
cache.put(entity);
return entity
}

Но по логам получается, что вызов регистрации события проходит несколько раз
Может я что-то не так делаю?

Кэш в данном случае - простой глобальный объект.

5 ответов

28 просмотров

Нужно запонить, что уже отправил запрос и ждать первый промис.

Событие с повторных uuid может прийти через час скажем?

А функция проверки синхронная?

Это псевдокод, или реальный? Если реальный, то put неправильный

А как часто возникают повторные запросы? Я вижу экспирацию кэша через 3 часа

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта