org.hibernate.search.batchindexing.impl
Class IdentifierProducer

java.lang.Object
  extended by org.hibernate.search.batchindexing.impl.IdentifierProducer
All Implemented Interfaces:
StatelessSessionAwareRunnable

public class IdentifierProducer
extends Object
implements 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.

Author:
Sanne Grinovero

Constructor Summary
IdentifierProducer(ProducerConsumerQueue<List<Serializable>> fromIdentifierListToEntities, SessionFactory sessionFactory, int objectLoadingBatchSize, Class<?> indexedType, MassIndexerProgressMonitor monitor, long objectsLimit, ErrorHandler errorHandler, int idFetchSize)
           
 
Method Summary
 void run(StatelessSession upperSession)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

IdentifierProducer

public IdentifierProducer(ProducerConsumerQueue<List<Serializable>> fromIdentifierListToEntities,
                          SessionFactory sessionFactory,
                          int objectLoadingBatchSize,
                          Class<?> indexedType,
                          MassIndexerProgressMonitor monitor,
                          long objectsLimit,
                          ErrorHandler errorHandler,
                          int idFetchSize)
Parameters:
fromIdentifierListToEntities - the target queue where the produced identifiers are sent to
sessionFactory - the Hibernate SessionFactory to use to load entities
objectLoadingBatchSize - affects mostly the next consumer: IdentifierConsumerEntityProducer
indexedType - the entity type to be loaded
monitor - to monitor indexing progress
objectsLimit - if not zero
errorHandler - how to handle unexpected errors
Method Detail

run

public void run(StatelessSession upperSession)
Specified by:
run in interface StatelessSessionAwareRunnable


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