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
public abstract class AbstractRenditionBuilderWork extends TransientStoreWork
- Since:
- 7.2
- Author:
- Tiry
- 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 static String
CATEGORY
protected DocumentRef
docRef
protected String
key
protected String
renditionName
-
Fields inherited from class org.nuxeo.ecm.core.transientstore.work.TransientStoreWork
entryKey, KEY_SUFFIX, STORE_NAME
-
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 AbstractRenditionBuilderWork(String key, DocumentModel doc, RenditionDefinition def)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected String
buildId(DocumentModel doc, RenditionDefinition def)
void
cleanUp(boolean ok, Exception e)
This method is called afterAbstractWork.work()
is done in a finally block, whether work completed normally or was in error or was interrupted.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 WorkString
getCategory()
Gets the category for this work.protected String
getSourceDocumentModificationDate(DocumentModel doc)
String
getTitle()
Gets a human-readable name for this work instance.protected String
getTransientStoreName()
boolean
isCoalescing()
When 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.boolean
isIdempotent()
Returns true if a work with a givenWork.getId()
should always produce the same result.protected void
storeAnErrorRendition()
void
work()
This method should implement the actual work done by theWork
instance.-
Methods inherited from class org.nuxeo.ecm.core.transientstore.work.TransientStoreWork
computeEntryKey, computeEntryKey, containsBlobHolder, getBlobHolder, getEntryKey, getStore, putBlobHolder, putBlobHolder, removeBlobHolder
-
Methods 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, 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
isGroupJoin, onGroupJoinCompletion
-
-
-
-
Field Detail
-
key
protected final String key
-
docRef
protected final DocumentRef docRef
-
renditionName
protected final String renditionName
-
CATEGORY
public static final String CATEGORY
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AbstractRenditionBuilderWork
public AbstractRenditionBuilderWork(String key, DocumentModel doc, RenditionDefinition def)
-
-
Method Detail
-
buildId
protected String buildId(DocumentModel doc, RenditionDefinition def)
-
getTitle
public String getTitle()
Description copied from interface:Work
Gets a human-readable name for this work instance.- Returns:
- a human-readable name
-
getCategory
public String getCategory()
Description copied from interface:Work
Gets the category for this work.Used to choose an execution queue.
- Specified by:
getCategory
in interfaceWork
- Overrides:
getCategory
in classAbstractWork
- Returns:
- the category, or
null
for the default
-
getTransientStoreName
protected String getTransientStoreName()
-
isIdempotent
public boolean isIdempotent()
Description copied from interface:Work
Returns 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:
isIdempotent
in interfaceWork
- Overrides:
isIdempotent
in classTransientStoreWork
-
isCoalescing
public boolean isCoalescing()
Description copied from interface:Work
When 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: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)
-
cleanUp
public void cleanUp(boolean ok, Exception e)
Description copied from class:AbstractWork
This method is called afterAbstractWork.work()
is done in a finally block, whether work completed normally or was in error or was interrupted.- Specified by:
cleanUp
in interfaceWork
- Overrides:
cleanUp
in classAbstractWork
- Parameters:
ok
-true
if the work completed normallye
- the exception, if available
-
storeAnErrorRendition
protected void storeAnErrorRendition()
-
getSourceDocumentModificationDate
protected String getSourceDocumentModificationDate(DocumentModel doc)
-
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
-
-