Ребята, я прикрепил к данной записи файл, который поможет в обсуждении данного вопроса.
Что имеем?
1.База данных, которая содержит таблицу со списком из трех новостей (Новость-1, Новость-2, Новость-3)
2.Структура вложенных компонентов (см. прикрепленную картинку).
3.Все компоненты заинтересованы в актуальном списке новостей.
4.Все компоненты умеют читать список новостей.
5.Только компонент "С" умеет изменять список новостей.
6.Все компоненты умеют отображать список новостей.
7.Все компоненты (кроме "C") используют механизм кэширования.
Стрелкой на схеме я отобразил поэтапный процесс парсинга компонентов от "A" до "D".
Очевидно, что в какой-то момент времени парсинга компонент "С" производит изменение списка новостей и ,естественно, он владеет актуальным состоянием списка. Сразу после изменения он может, например, записать данное событие в некоторый журнал.
Когда очередь доходит до компонента "D" вместо того, чтобы проверять кэш и подключать свою закэшированную версию, компонент "D" может проверить журнал событий, и, если находит что-то интересное для себя может сбросить свой кэш, тем самым отобразив актуальный список.
И вот теперь вопрос: а что с компонентами "A" и "B"? Ведь они уже отработали до компонента "C", верно? Т.е. выходит, что отображать они будут неактуальную информацию? Как быть в таких ситуациях? Ткните пальцем, если есть материал для чтения. Спасибо.
Что имеем?
1.База данных, которая содержит таблицу со списком из трех новостей (Новость-1, Новость-2, Новость-3)
2.Структура вложенных компонентов (см. прикрепленную картинку).
3.Все компоненты заинтересованы в актуальном списке новостей.
4.Все компоненты умеют читать список новостей.
5.Только компонент "С" умеет изменять список новостей.
6.Все компоненты умеют отображать список новостей.
7.Все компоненты (кроме "C") используют механизм кэширования.
Стрелкой на схеме я отобразил поэтапный процесс парсинга компонентов от "A" до "D".
Очевидно, что в какой-то момент времени парсинга компонент "С" производит изменение списка новостей и ,естественно, он владеет актуальным состоянием списка. Сразу после изменения он может, например, записать данное событие в некоторый журнал.
Когда очередь доходит до компонента "D" вместо того, чтобы проверять кэш и подключать свою закэшированную версию, компонент "D" может проверить журнал событий, и, если находит что-то интересное для себя может сбросить свой кэш, тем самым отобразив актуальный список.
И вот теперь вопрос: а что с компонентами "A" и "B"? Ведь они уже отработали до компонента "C", верно? Т.е. выходит, что отображать они будут неактуальную информацию? Как быть в таких ситуациях? Ткните пальцем, если есть материал для чтения. Спасибо.