Este conteúdo não está disponível no idioma selecionado.
7.3. Listener Notifications
Each cache event triggers a notification that is dispatched to listeners. A listener is a simple POJO annotated with
@Listener. A Listenable is an interface that denotes that the implementation can have listeners attached to it. Each listener is registered using methods defined in the Listenable.
A listener can be attached to both the cache and Cache Manager to allow them to receive cache-level or cache manager-level notifications.
7.3.1. About Cache-level Notifications Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
In Red Hat JBoss Data Grid, cache-level events occur on a per-cache basis, and are global and cluster-wide. Examples of cache-level events include the addition, removal and modification of entries, which trigger notifications to listeners registered on the relevant cache.
7.3.2. Cache Manager-level Notifications Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
Examples of events that occur in Red Hat JBoss Data Grid at the cache manager-level are:
- Nodes joining or leaving a cluster;
- The starting and stopping of caches
Cache manager-level events are located globally and used cluster-wide, but are restricted to events within caches created by a single cache manager.
7.3.3. About Synchronous and Asynchronous Notifications Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
By default, notifications in Red Hat JBoss Data Grid are dispatched in the same thread that generates the event. Therefore the listener must be written in a way that does not block or prevent the thread's progression.
Alternatively, the listener can be annotated as asynchronous, which dispatches notifications in a separate thread and prevents blocking the operations of the original thread.
Annotate listeners using the following:
@Listener (sync = false)
public class MyAsyncListener { .... }
@Listener (sync = false)
public class MyAsyncListener { .... }
Use the
<asyncListenerExecutor/> element in the configuration file to tune the thread pool that is used to dispatch asynchronous notifications.