Package org.dspace.event
Interface Consumer
- All Known Implementing Classes:
AuthorityConsumer,CheckerConsumer,DOIConsumer,EPersonConsumer,IIIFCacheEventConsumer,IndexEventConsumer,LDNMessageConsumer,OrcidQueueConsumer,QAEventsDeleteCascadeConsumer,RDFConsumer,StatisticsLoggingConsumer,SubmissionConfigConsumer,TestConsumer,VersioningConsumer
public interface Consumer
Interface for content event consumers. Note that the consumer cannot tell
if it is invoked synchronously or asynchronously; the consumer interface
and sequence of calls is the same for both. Asynchronous consumers may see
more consume() calls between the start and end of the event stream, if they
are invoked asynchronously, once in a long time period, rather than
synchronously after every Context.commit().
-
Method Summary
Modifier and TypeMethodDescriptionvoidConsume an event.voidSignal that there are no more events queued in this event stream and event processing for the preceding consume calls should be finished up.voidFinish - free any allocated resources.voidAllocate any resources required to operate.
-
Method Details
-
initialize
Allocate any resources required to operate. This may include initializing any pooled JMS resources. Called ONCE when created by the dispatcher pool. This should be used to set up expensive resources that will remain for the lifetime of the consumer.- Throws:
Exception- if error
-
consume
Consume an event. Events may be filtered by a dispatcher, hiding them from the consumer. This behavior is based on the dispatcher/consumer configuration. Should include logic to initialize any resources required for a batch of events.This method must not commit the context. Committing causes re-dispatch of the event queue, which can result in infinite recursion leading to memory exhaustion as seen in {@link https://github.com/DSpace/DSpace/pull/8756}.
- Parameters:
ctx- the current DSpace sessionevent- the content event- Throws:
Exception- if error
-
end
Signal that there are no more events queued in this event stream and event processing for the preceding consume calls should be finished up.- Parameters:
ctx- the execution context object- Throws:
Exception- if error
-
finish
Finish - free any allocated resources. Called when consumer (via it's parent dispatcher) is going to be destroyed by the dispatcher pool.- Parameters:
ctx- the execution context object- Throws:
Exception- if error
-