Package org.nuxeo.ecm.core
Class BatchFinderWork
- java.lang.Object
-
- org.nuxeo.ecm.core.work.AbstractWork
-
- org.nuxeo.ecm.core.BatchFinderWork
-
- All Implemented Interfaces:
Serializable
,Work
- Direct Known Subclasses:
DBSTransactionState.FindReadAclsWork
public abstract class BatchFinderWork extends AbstractWork
Abstract Work to find the ids of documents for which some process must be executed in batch, based on a NXQL query.- Since:
- 9.10
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.work.api.Work
Work.Progress, Work.State
-
-
Field Summary
Fields Modifier and Type Field Description protected String
nxql
protected static int
SCROLL_KEEPALIVE_SECONDS
protected static int
TRANSACTION_TIMEOUT_SECONDS
-
Fields inherited from class org.nuxeo.ecm.core.work.AbstractWork
callerThread, completionTime, docId, docIds, FAILURE_EXCEPTION, FAILURE_MSG, GLOBAL_DLQ_COUNT_REGISTRY_NAME, id, isTree, loginContext, originatingUsername, progress, RANDOM, repositoryName, schedulePath, schedulingTime, session, startTime, state, status, suspended, suspending, traceContext, WORK_FAILED_EVENT, WORK_INSTANCE
-
-
Constructor Summary
Constructors Constructor Description BatchFinderWork(String repositoryName, String nxql, String originatingUsername)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract Work
getBatchProcessorWork(List<String> docIds)
abstract int
getBatchSize()
The batch size to use.int
getRetryCount()
Gets the number of times that this Work instance can be retried in case of concurrent update exceptions.void
work()
This method should implement the actual work done by theWork
instance.-
Methods inherited from class org.nuxeo.ecm.core.work.AbstractWork
appendWorkToDeadLetterQueue, buildWorkFailureEventProps, cleanUp, closeSession, commitOrRollbackTransaction, equals, getCategory, getCompletionTime, getDocument, getDocuments, getId, getOriginatingUsername, getPartitionKey, getProgress, getSchedulePath, getSchedulingTime, getSpanFromContext, getStartTime, getStatus, getWorkInstanceState, hashCode, initSession, initSession, isDocumentTree, isSuspending, isWorkInstanceSuspended, newDocumentLocation, openSystemSession, openUserSession, run, runWorkWithTransaction, setCompletionTime, setDocument, setDocument, setDocuments, setOriginatingUsername, setProgress, setSchedulePath, setStartTime, setStatus, setWorkInstanceState, setWorkInstanceSuspending, startTransaction, suspended, toString, workFailed
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.nuxeo.ecm.core.work.api.Work
getTitle, isCoalescing, isGroupJoin, isIdempotent, onGroupJoinCompletion
-
-
-
-
Field Detail
-
SCROLL_KEEPALIVE_SECONDS
protected static final int SCROLL_KEEPALIVE_SECONDS
- See Also:
- Constant Field Values
-
nxql
protected String nxql
-
TRANSACTION_TIMEOUT_SECONDS
protected static final int TRANSACTION_TIMEOUT_SECONDS
- Since:
- 2023.17
- See Also:
- Constant Field Values
-
-
Method Detail
-
getRetryCount
public int getRetryCount()
Description copied from class:AbstractWork
Gets the number of times that this Work instance can be retried in case of concurrent update exceptions.- Overrides:
getRetryCount
in classAbstractWork
- Returns:
- 0 for no retry, or more if some retries are possible
- See Also:
AbstractWork.work()
-
getBatchSize
public abstract int getBatchSize()
The batch size to use.
-
work
public void work()
Description copied from interface:Work
This method should implement the actual work done by theWork
instance.It should periodically update its progress through
Work.setProgress(org.nuxeo.ecm.core.work.api.Work.Progress)
.To allow for suspension by the
WorkManager
, it should periodically callWork.isSuspending()
, and iftrue
callWork.suspended()
return early with saved state data.Clean up can by implemented by
Work.cleanUp(boolean, Exception)
.- Specified by:
work
in interfaceWork
- Specified by:
work
in classAbstractWork
- See Also:
Work.isSuspending()
,Work.suspended()
,Work.cleanUp(boolean, java.lang.Exception)
-
-