You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
и в момент сохранения записи, кеш нормально записывается.
беда возникает там, где идет изменение зависимой записи.
например Дело, у него в кеш записывается контрагент из поля От или Адресат.
Предположим дело это Договор №123 с ООО "Карамба".
Записали и в кеш сохранилось название ООО "Карамба" и "Договор".
И теперь можно найти дело по фразе "договор карамба".
А завтра кто то зашел и в ООО "Карамба" изменил название на "Карамба ЗАО (Caramba)"
Логично предположить что теперь дело должно находиться по запросу caramba.
Но это не так, птм что обновление кеша происходит только в момент сохранения самой записи, а зависимые записи никак не учитываются.
Надо сделать систему автоматического обновления кешей.
Если запись обновили, то делать обновление зависимых записей.
То тут же нам надо суметь прописать механизм обновления кеша по обратному запросу.
Пример:
Мы прописали что в кеш дела идет заголовок записи ИД которой хранится в по От. Например это организация с названием "НКО Тико". Там есть условие которое говорит какие записи обновлять и по какому полю находить.
Надо писать обратный механизм. Что если организация или персона обновится, то надо запускать обновления всех записей с такими условиями и ключами метаполей, в которых есть эта запись.
Еще:
Начать надо с тех функций что уже прописаны в механизме
Плюс добавить эту особенность в блог casepress.org
The text was updated successfully, but these errors were encountered:
В идеале некоторые механизмы стоит делать через рекурсию и AJAX интерфейс очереди.
Предположим есть запись, которая состоит в отношениях с другими 100 000 записями.
Если это делать синхронно, то система может зависнуть и умереть в попытке за раз обработать 100 000 записей.
Потому стоит создавать механизм запуска очереди через метаполя.
Затем запуск функции и рекурсивное выполнение с сохранением прогресса в отдельное метаполе.
Hearbeat API отражение прогресса на странице записи. В виде всплывающих оконо или волчка или как то еще. Чтобы пользователь понимал что запись сохранена, но запущено обновление кеша, и его заверешение.
сделан поисковый кеш #45
и в момент сохранения записи, кеш нормально записывается.
беда возникает там, где идет изменение зависимой записи.
например Дело, у него в кеш записывается контрагент из поля От или Адресат.
Предположим дело это Договор №123 с ООО "Карамба".
Записали и в кеш сохранилось название ООО "Карамба" и "Договор".
И теперь можно найти дело по фразе "договор карамба".
А завтра кто то зашел и в ООО "Карамба" изменил название на "Карамба ЗАО (Caramba)"
Логично предположить что теперь дело должно находиться по запросу caramba.
Но это не так, птм что обновление кеша происходит только в момент сохранения самой записи, а зависимые записи никак не учитываются.
Надо сделать систему автоматического обновления кешей.
Если запись обновили, то делать обновление зависимых записей.
Суть идеи заключается в том, что если мы смогли прописать механизм кеширования по какому либо запросу. Например https://github.com/systemo-biz/casepress/blob/master/cp-includes/search-ext/post-content-filtered-search-cp.php#L30
То тут же нам надо суметь прописать механизм обновления кеша по обратному запросу.
Пример:
Еще:
The text was updated successfully, but these errors were encountered: