Механізму lockedLoadData необхідно зменшити навантаження на сервер.
Раніше, коли кеш конфігурації очищався на завантажених сайтах, усі клієнти генерували ту саму інформацію, що значно збільшує завантаження процесора / іо.
З lockedLoadData лише один клієнт буде генерувати кеш, а інші чекатимуть його.
Детальніше про те, як це працює.
Перший виклик функції "отримати дані" зворотного виклику, і якщо він отримує дані, ніж просто повертає їх (тому якщо дані в кеші, код працює як попередній і не використовує жодних блокувань).
Якщо даних немає, а блокування заблоковано, то у циклі ми намагаємося завантажити дані, поки дані не отримають або замок не буде знято.
Якщо блокування немає, то ми створюємо замок і генеруємо дані, зберігаючи їх у кеші, і видаляємо дані блокування та повернення
PS: Ці зміни ми надіслали як патч для одного з клієнтів із завантаженням до 20 кРПМ, і це працює принаймні 3 місяці без жодних проблем. Тому, можливо, проблема у ваших налаштуваннях / модулях (наприклад, якщо вони порушили механізм кешу)