У меня есть «главный» актер, создающий множество дочерних актеров.Как делиться данными между участниками, которые должны быть кэшированы
Детские актеры выполняют работу, и всем им необходим доступ к данным, которые я должен извлечь из базы данных.
Я хочу, чтобы кешировать эти данные, потому что это будет очень ресурсоемким для каждого актера, который будет бить базу данных для этих данных, и это не так часто изменяется (у меня уже есть хорошая стратегия для недействительности кэша).
Например, мой ребенок актер будет нуждаться:
- Счет
- Пользователь
- т.д.
Эти объекты должны быть загружены из базы данных.
Как я могу загрузить эти объекты и как-то поделиться ими со всеми моими другими актерами?
Будет ли лучший способ создать общий класс с ссылкой на кэш-память guava?
Примечание Я не хочу распределенный кеш, я думаю, что в кеше в памяти будет достаточно.
для подхода № 1, я всегда могу добавить данные в кеш, прежде чем отправлять работу дочернему актору, поэтому он всегда будет присутствовать. – Blankman
Вы имеете в виду, когда вы создаете экземпляр актера, вы даете ему ссылку на объект кеша, содержащий все данные, которые ему когда-либо понадобятся? Итак, ваш актер никогда не будет запрашивать что-то из кеша, который еще не кэширован? Я думаю, что тогда я бы не назвал его кешем. – lex82