Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:1605:643.mgul.21010-10_13_01 [2024/01/04 14:53] aminaraon [requestAdditionalDataIfMissing(formattedStartDate, formattedEndDate, filteredKeys)] |
doc:1605:643.mgul.21010-10_13_01 [2024/01/04 15:05] (текущий) aminaraon [checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray)] |
||
---|---|---|---|
Строка 90: | Строка 90: | ||
await updateDataInRedis(dataUrl); | await updateDataInRedis(dataUrl); | ||
} | } | ||
- | Шаг №6: Если флаг установлен в true, возвращение новых отсортированных и отфильтрованных ключей, иначе возвращаем filteredKeys | + | Шаг №6: Если флаг установлен в true, возвращение новых отсортированных и отфильтрованных ключей из Redis, иначе возвращаем filteredKeys |
return flag ? await sortedAndFilteredKeys(formattedStartDate, formattedEndDate) : filteredKeys; | return flag ? await sortedAndFilteredKeys(formattedStartDate, formattedEndDate) : filteredKeys; | ||
+ | ===== checkDateRangeInRedis(formattedStartDate, formattedEndDate, keysArray) ===== | ||
+ | Шаг №1: Инициализация переменных, получение начальной и конечной временных меток из Redis | ||
+ | const startDate = keysArray[0]; | ||
+ | const endDate = keysArray[keysArray.length - 1]; | ||
+ | Шаг №2: Расчет временной разницы в минутах между конечной датой Redis и заданной начальной датой. | ||
+ | let startDifference = moment(endDate).diff(moment(formattedStartDate), 'minutes'); | ||
+ | Шаг №3: Проверка, находится ли заданная начальная дата внутри или частично пересекается с временным диапазоном Redis. | ||
+ | if (startDate <= formattedStartDate && formattedStartDate < endDate && Math.abs(startDifference) >= 5) { | ||
+ | // Если условие выполняется, возвращаем true, указывая на пересечение временных диапазонов. | ||
+ | return true; | ||
+ | } | ||
+ | Шаг №4: Расчет временной разницы в минутах между заданной конечной датой массива и начальной датой Redis. | ||
+ | let endDifference = moment(formattedEndDate).diff(moment(startDate), 'minutes'); | ||
+ | Шаг №5: Если ни одно из условий не выполнилось, возвращаем false, указывая на отсутствие пересечения временных диапазонов, иначе true | ||
+ | return formattedStartDate <= startDate && startDate < formattedEndDate && Math.abs(endDifference) >= 5; |