public class FullTextIndexer extends Executor.SimpleWork implements org.springframework.context.ApplicationContextAware
EventLog
passed from the
EventLogLoader
multiple times on failure. EventuallyModifier and Type | Field and Description |
---|---|
protected long |
batch |
protected Timer |
batchTimer |
protected Histogram |
completeFast |
protected Histogram |
completeSlow |
protected OmeroContext |
context |
static int |
DEFAULT_REPORTING_LOOPS
Default number of loops to wait if no external value is set.
|
protected boolean |
dryRun |
protected EventLogLoader |
loader |
protected ParserSession |
parserSession |
protected int |
reportingLoops
Frequency with which the percentage done should be calculated.
|
protected int |
reps |
description
Constructor and Description |
---|
FullTextIndexer(EventLogLoader ll) |
FullTextIndexer(EventLogLoader ll,
Metrics metrics) |
Modifier and Type | Method and Description |
---|---|
protected Class |
asClassOrNull(String str) |
int |
doIndexing(org.hibernate.search.FullTextSession session) |
boolean |
doMore(int count)
Default implementation suggests doing more if fewer than
reps
runs have been made and if there are still more than
EventLogLoader.batchSize x 100 backlog entries. |
Object |
doWork(org.hibernate.Session session,
ServiceFactory sf)
Runs
doIndexing(FullTextSession) within a Lucene transaction. |
protected IObject |
get(org.hibernate.Session session,
Class type,
long id) |
protected void |
handleEventLog(org.hibernate.search.FullTextSession session,
EventLog eventLog) |
void |
setApplicationContext(org.springframework.context.ApplicationContext ctx)
Set the ApplicationContext that this object runs in.
|
void |
setDryRun(boolean dryRun) |
void |
setRepetitions(int reps)
Spring injector.
|
void |
setReportingLoops(int loops) |
void |
setSqlAction(SqlAction sql)
Since these instances are used repeatedly, we need to check for
already set SqlAction
|
getSqlAction
description
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
description
public static final int DEFAULT_REPORTING_LOOPS
protected final EventLogLoader loader
protected final ParserSession parserSession
protected final Timer batchTimer
protected final Histogram completeSlow
protected final Histogram completeFast
protected int reps
protected long batch
protected int reportingLoops
protected boolean dryRun
protected OmeroContext context
public FullTextIndexer(EventLogLoader ll)
public FullTextIndexer(EventLogLoader ll, Metrics metrics)
public void setRepetitions(int reps)
public void setReportingLoops(int loops)
public void setDryRun(boolean dryRun)
public void setApplicationContext(org.springframework.context.ApplicationContext ctx)
org.springframework.context.ApplicationContextAware
Invoked after population of normal bean properties but before an init callback such
as InitializingBean.afterPropertiesSet()
or a custom init-method. Invoked after ResourceLoaderAware.setResourceLoader(org.springframework.core.io.ResourceLoader)
,
ApplicationEventPublisherAware.setApplicationEventPublisher(org.springframework.context.ApplicationEventPublisher)
and
MessageSourceAware
, if applicable.
setApplicationContext
in interface org.springframework.context.ApplicationContextAware
ctx
- the ApplicationContext object to be used by this objectBeanInitializationException
public void setSqlAction(SqlAction sql)
setSqlAction
in class Executor.SimpleWork
@Transactional(readOnly=false, isolation=SERIALIZABLE) public Object doWork(org.hibernate.Session session, ServiceFactory sf)
doIndexing(FullTextSession)
within a Lucene transaction.
doIndexing(FullTextSession)
will also be calleddoWork
in interface Executor.Work
session
- non null.sf
- non null.public int doIndexing(org.hibernate.search.FullTextSession session)
protected void handleEventLog(org.hibernate.search.FullTextSession session, EventLog eventLog)
public boolean doMore(int count)
reps
runs have been made and if there are still more than
EventLogLoader.batchSize
x 100 backlog entries.
This is based on the assumption that indexing runs roughly 120 times an
hour, so if there are more than an hours worth of batches, do extra work
to catch up.
Version: 5.1.3-ice35-b52
Copyright © 2015 The University of Dundee & Open Microscopy Environment. All Rights Reserved.