org.hibernate.search.backend.impl.batch
Interface BatchBackend

All Known Implementing Classes:
DefaultBatchBackend

public interface BatchBackend

Implementations of this interface are not drop-in replacements for the standard BackendQueueProcessor, but are meant to be used only during batch processing. The order of LuceneWork(s) processed is not guaranteed as the queue is consumed by several concurrent workers.

Author:
Sanne Grinovero

Method Summary
 void doWorkInSync(LuceneWork work)
          Does one work in sync
 void enqueueAsyncWork(LuceneWork work)
          Enqueues one work to be processed asynchronously
 void flush(Set<Class<?>> indexedRootTypes)
          Since most work is done async in the backend, we need to flush at the end to make sure we don't return control before all work was processed, and that IndexWriters are committed or closed.
 void optimize(Set<Class<?>> targetedClasses)
          Triggers optimization of all indexes containing at least one instance of the listed targetedClasses.
 

Method Detail

enqueueAsyncWork

void enqueueAsyncWork(LuceneWork work)
                      throws InterruptedException
Enqueues one work to be processed asynchronously

Parameters:
work -
Throws:
InterruptedException - if the current thread is interrupted while waiting for the work queue to have enough space.

doWorkInSync

void doWorkInSync(LuceneWork work)
Does one work in sync

Parameters:
work -
Throws:
InterruptedException

flush

void flush(Set<Class<?>> indexedRootTypes)
Since most work is done async in the backend, we need to flush at the end to make sure we don't return control before all work was processed, and that IndexWriters are committed or closed.

Parameters:
indexedRootType - flushes all indexes containing entities of this type

optimize

void optimize(Set<Class<?>> targetedClasses)
Triggers optimization of all indexes containing at least one instance of the listed targetedClasses.

Parameters:
targetedClasses - Used to specify which indexes need optimization.


Copyright © 2006-2012 Red Hat Middleware, LLC. All Rights Reserved