Class IdentifierProducer
java.lang.Object
org.hibernate.search.batchindexing.IdentifierProducer
- All Implemented Interfaces:
StatelessSessionAwareRunnable
This Runnable is going to feed the indexing queue
with the identifiers of all the entities going to be indexed.
This step in the indexing process is not parallel (should be
done by one thread per type) so that a single transaction is used
to define the group of entities to be indexed.
Produced identifiers are put in the destination queue grouped in List
instances: the reason for this is to load them in batches
in the next step and reduce contention on the queue.
-
Constructor Summary
ConstructorsConstructorDescriptionIdentifierProducer(ProducerConsumerQueue<List<Serializable>> fromIdentifierListToEntities, org.hibernate.SessionFactory sessionFactory, int objectLoadingBatchSize, Class<?> indexedType, MassIndexerProgressMonitor monitor, long objectsLimit) -
Method Summary
-
Constructor Details
-
IdentifierProducer
public IdentifierProducer(ProducerConsumerQueue<List<Serializable>> fromIdentifierListToEntities, org.hibernate.SessionFactory sessionFactory, int objectLoadingBatchSize, Class<?> indexedType, MassIndexerProgressMonitor monitor, long objectsLimit) - Parameters:
fromIdentifierListToEntities- the target queue where the produced identifiers are sent tosessionFactory- the Hibernate SessionFactory to use to load entitiesobjectLoadingBatchSize- affects mostly the next consumer: IdentifierConsumerEntityProducerindexedType- the entity type to be loadedmonitor- to monitor indexing progressobjectsLimit- if not zero
-
-
Method Details
-
run
- Specified by:
runin interfaceStatelessSessionAwareRunnable
-