Рассмотрим следующее:
const cached = this.cache.get(somekey);
// console.log(!cached);
if (!cached) {
console.log(cached);
return requestRetry({
url: fullUri,
json: true,
maxAttempts: 3, // (default) try 5 times
retryDelay: 2000, // (default) wait for 5s before trying again
retryStrategy: requestRetry.RetryStrategies.HTTPOrNetworkError,
fullResponse: true
}).then((result) => {
//do something with the result and return result
this.cache.set(somekey, data);
return result;
}
} else {
//return cached result
}
указанный выше код вызывается в методе onmessage потребителя потока kafka.Проблема, с которой я сталкиваюсь, заключается в том, что если результат не задан, а кэширование не определено, он делает несколько вызовов на URL для каждого входящего сообщения kafka.
Как сделать так, чтобы только один вызов был сделан в кулакПри поступлении сообщения он устанавливает кэш, а затем при следующем сообщении вводит остальную часть и получает данные из кэша.