Я бы хотел использовать кластер Ignite для нагрева кеша PARTITIONED
из существующей базы данных. Существующая база данных не разбивается на разделы и не сканируется, поэтому я хотел бы выполнить одно сканирование, когда кеш создается кластером. По завершении задания результатом будет кеш, содержащий все данные из существующей базы данных, разделенные и равномерно распределенные по кластеру.Как инициировать нагрев при создании кеша?
Как реализовать задание, выполняемое при создании кеша Ignite?
Спасибо @Valentin. При использовании 'CacheStore', откуда следует вызывать' IgniteCache.loadCache'? При использовании 'IgniteDataStreamer', откуда следует вызывать' addData'? Похоже, что сервис не работает, потому что нет гарантии, что 'execute' будет вызываться только один раз для жизни кластера. Альтернативно, 'EVT_CACHE_STARTED', кажется, публикуется локально на каждом узле, поэтому события сетки не будут работать. Вообще говоря, вопрос заключается в том, где реализовать логику «один раз в кэш», например, кеширование. –
Вы можете создать клиентский узел, вызвать 'IgniteCache.loadCache' и остановить клиента, когда процесс будет завершен. То же самое касается «IgniteDataStreamer», обычно это клиентский узел, который загружает данные из БД и передает его в серверные узлы. –