Package de.willuhn.jameica.messaging
Class NamedConcurrentQueue
java.lang.Object
de.willuhn.jameica.messaging.NamedConcurrentQueue
- All Implemented Interfaces:
MessagingQueue
Implementierung einer benamten Queue, die jedoch mittels ThreadPoolExecutor
multi-threaded arbeitet.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Schliesst die Queue und sendet alle noch offenen Nachrichten.void
flush()
Sendet alle noch offenen Nachrichten.int
Liefert die aktuelle Anzahl noch zuzustellender Nachrichten.void
queueMessage
(Message message) Stellt eine Nachricht in die Queue.void
registerMessageConsumer
(MessageConsumer consumer) Registriert einen Nachrichten-Consumer manuell in der Queue.void
sendMessage
(Message message) Sendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.void
sendSyncMessage
(Message message) Sendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.void
unRegisterMessageConsumer
(MessageConsumer consumer) Entfernt einen Nachrichten-Consumer aus der Queue.
-
Constructor Details
-
NamedConcurrentQueue
ct.- Parameters:
name
- der Name der Queue.
-
-
Method Details
-
sendMessage
Description copied from interface:MessagingQueue
Sendet eine Nachricht asynchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendMessage
in interfaceMessagingQueue
- Parameters:
message
- die zu versendende Nachricht.- See Also:
-
sendSyncMessage
Description copied from interface:MessagingQueue
Sendet eine Nachricht synchron an alle Nachrichtenverbraucher der Queue.- Specified by:
sendSyncMessage
in interfaceMessagingQueue
- Parameters:
message
- die zu versendende Nachricht.- See Also:
-
queueMessage
Description copied from interface:MessagingQueue
Stellt eine Nachricht in die Queue. Dort bleibt sie solange, bis ein Consumer dafuer vorhanden ist.- Specified by:
queueMessage
in interfaceMessagingQueue
- Parameters:
message
- die zu versendende Nachricht.- See Also:
-
getQueueSize
public int getQueueSize()Description copied from interface:MessagingQueue
Liefert die aktuelle Anzahl noch zuzustellender Nachrichten.- Specified by:
getQueueSize
in interfaceMessagingQueue
- Returns:
- aktuelle Queue-Groesse.
- See Also:
-
registerMessageConsumer
Description copied from interface:MessagingQueue
Registriert einen Nachrichten-Consumer manuell in der Queue.- Specified by:
registerMessageConsumer
in interfaceMessagingQueue
- Parameters:
consumer
- zu registrierender Consumer.- See Also:
-
unRegisterMessageConsumer
Description copied from interface:MessagingQueue
Entfernt einen Nachrichten-Consumer aus der Queue.- Specified by:
unRegisterMessageConsumer
in interfaceMessagingQueue
- Parameters:
consumer
- zu entfernender Consumer.- See Also:
-
close
public void close()Description copied from interface:MessagingQueue
Schliesst die Queue und sendet alle noch offenen Nachrichten.- Specified by:
close
in interfaceMessagingQueue
- See Also:
-
flush
public void flush()Description copied from interface:MessagingQueue
Sendet alle noch offenen Nachrichten. Die Funktion kehrt erst zurueck, nachdem alle Nachrichten zugestellt wurden.- Specified by:
flush
in interfaceMessagingQueue
- See Also:
-