Яка мета створення заблокованоїLoadData / без кешування сторінки займає близько хвилини, проведеної у сплячому режимі


11

Я думаю, що з моменту оновлення до Magento 2.3.1 у мене виникають проблеми із завантаженням сторінки, що не зберігається, (під час розробки).

Я простежив blackfire.io, і виявилося, що тут спить 42 секунди .

Тепер мені цікаво, яка мета цього. Я здогадуюсь, що я бігаю в якомусь стані гонки?

Хтось раніше переживав щось подібне?

EDIT: Стек викликів, як видається, включає комерційну помилку.

Відповіді:


8

Ну це - вибір? - зробили інженери Magento.

Це не відповідь, але схоже, що ця функція приймає зворотний дзвінок, призначений для завантаження кешованих даних. Зворотний виклик перевіряє, чи немає в даний момент блокування. Якщо ні, він встановлює замок на місце, завантажує дані, а потім звільняє замок. Якщо на місці є блок, він спить протягом 100,000мікросекунд (.1 секунди), а потім знову викликає навантажувач.

Отже, міркуючи вголос, я можу здогадатися

  1. Можливо, більше, ніж зазвичай, кількість запитів до цієї функції
  2. Вищий за звичайний час читання з кешу.


7

Механізму lockedLoadData необхідно зменшити навантаження на сервер.

Раніше, коли кеш конфігурації очищався на завантажених сайтах, усі клієнти генерували ту саму інформацію, що значно збільшує завантаження процесора / іо.

З lockedLoadData лише один клієнт буде генерувати кеш, а інші чекатимуть його.

Детальніше про те, як це працює.

Перший виклик функції "отримати дані" зворотного виклику, і якщо він отримує дані, ніж просто повертає їх (тому якщо дані в кеші, код працює як попередній і не використовує жодних блокувань).

Якщо даних немає, а блокування заблоковано, то у циклі ми намагаємося завантажити дані, поки дані не отримають або замок не буде знято.

Якщо блокування немає, то ми створюємо замок і генеруємо дані, зберігаючи їх у кеші, і видаляємо дані блокування та повернення

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


Цікаво ... У будь-якому випадку у мене це гайки. Я налагоджую це з Аланом, PulseStorm
Алекс

здається, що це дуже погане рішення, тому всі користувачі, які чекають, збережуть процес життя. чому вони не можуть просто використовувати столові
блоки

@OZZIE Ви вважаєте за краще, щоб усі користувачі генерували дані, а не спали, поки це не зробиться? У нас немає таких математичних безкоштовних ресурсів процесора
Кенді
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.