Class AbstractRenditionBuilderWork
java.lang.Object
org.nuxeo.ecm.core.work.AbstractWork
org.nuxeo.ecm.core.transientstore.work.TransientStoreWork
org.nuxeo.ecm.platform.rendition.lazy.AbstractRenditionBuilderWork
- All Implemented Interfaces:
Serializable,Work
- Direct Known Subclasses:
AutomationRenditionBuilder
- Since:
- 7.2
- Author:
- Tiry
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.work.api.Work
Work.Progress, Work.State -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringprotected final DocumentRefprotected final Stringprotected final StringFields inherited from class org.nuxeo.ecm.core.transientstore.work.TransientStoreWork
entryKey, KEY_SUFFIX, STORE_NAMEFields 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
ConstructorsConstructorDescriptionAbstractRenditionBuilderWork(String key, DocumentModel doc, RenditionDefinition def) -
Method Summary
Modifier and TypeMethodDescriptionprotected StringbuildId(DocumentModel doc, RenditionDefinition def) voidThis method is called afterAbstractWork.work()is done in a finally block, whether work completed normally or was in error or was interrupted.doComputeRendition(CoreSession session, DocumentModel doc, RenditionDefinition def) Does the actual Rendition Computation: this code will be called from inside an Asynchronous WorkGets the category for this work.protected StringgetTitle()Gets a human-readable name for this work instance.protected StringbooleanWhen setting the coalescing flag to true you indicate to the work manager that if multiple works with the same id are scheduled you only care about the lastest execution.booleanReturns true if a work with a givenWork.getId()should always produce the same result.protected voidvoidwork()This method should implement the actual work done by theWorkinstance.Methods inherited from class org.nuxeo.ecm.core.transientstore.work.TransientStoreWork
computeEntryKey, computeEntryKey, containsBlobHolder, getBlobHolder, getEntryKey, getStore, putBlobHolder, putBlobHolder, removeBlobHolderMethods inherited from class org.nuxeo.ecm.core.work.AbstractWork
appendWorkToDeadLetterQueue, buildWorkFailureEventProps, closeSession, commitOrRollbackTransaction, equals, getCompletionTime, getDocument, getDocuments, getId, getOriginatingUsername, getPartitionKey, getProgress, getRetryCount, getSchedulePath, getSchedulingTime, getSpanFromContext, getStartTime, getStatus, getWorkInstanceState, hashCode, isDocumentTree, isSuspending, isWorkInstanceSuspended, newDocumentLocation, openSystemSession, openUserSession, run, runWorkWithTransaction, setCompletionTime, setDocument, setDocument, setDocuments, setOriginatingUsername, setProgress, setSchedulePath, setStartTime, setStatus, setWorkInstanceState, setWorkInstanceSuspending, startTransaction, suspended, toString, workFailedMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.nuxeo.ecm.core.work.api.Work
isGroupJoin, onGroupJoinCompletion
-
Field Details
-
key
-
docRef
-
renditionName
-
CATEGORY
- See Also:
-
-
Constructor Details
-
AbstractRenditionBuilderWork
-
-
Method Details
-
buildId
-
getTitle
Description copied from interface:WorkGets a human-readable name for this work instance.- Returns:
- a human-readable name
-
getCategory
Description copied from interface:WorkGets the category for this work.Used to choose an execution queue.
- Specified by:
getCategoryin interfaceWork- Overrides:
getCategoryin classAbstractWork- Returns:
- the category, or
nullfor the default
-
getTransientStoreName
-
isIdempotent
public boolean isIdempotent()Description copied from interface:WorkReturns true if a work with a givenWork.getId()should always produce the same result. The WorkManager implementation can safely skip duplicate executions of idempotent work.- Specified by:
isIdempotentin interfaceWork- Overrides:
isIdempotentin classTransientStoreWork
-
isCoalescing
public boolean isCoalescing()Description copied from interface:WorkWhen setting the coalescing flag to true you indicate to the work manager that if multiple works with the same id are scheduled you only care about the lastest execution. The goal is to skip useless executions to save resources, It is up to the work manager implementation to support or not this optimization. -
work
public void work()Description copied from interface:WorkThis method should implement the actual work done by theWorkinstance.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 iftruecallWork.suspended()return early with saved state data.Clean up can by implemented by
Work.cleanUp(boolean, Exception).- Specified by:
workin interfaceWork- Specified by:
workin classAbstractWork- See Also:
-
cleanUp
Description copied from class:AbstractWorkThis method is called afterAbstractWork.work()is done in a finally block, whether work completed normally or was in error or was interrupted.- Specified by:
cleanUpin interfaceWork- Overrides:
cleanUpin classAbstractWork- Parameters:
ok-trueif the work completed normallye- the exception, if available
-
storeAnErrorRendition
protected void storeAnErrorRendition() -
getSourceDocumentModificationDate
-
doComputeRendition
protected abstract List<Blob> doComputeRendition(CoreSession session, DocumentModel doc, RenditionDefinition def) Does the actual Rendition Computation: this code will be called from inside an Asynchronous Work
-