public abstract class AbstractRenditionBuilderWork extends TransientStoreWork
Work.Progress, Work.State
Modifier and Type | Field and Description |
---|---|
static String |
CATEGORY |
protected DocumentRef |
docRef |
protected String |
key |
protected static org.apache.commons.logging.Log |
log |
protected String |
renditionName |
entryKey, KEY_SUFFIX, STORE_NAME
callerThread, completionTime, docId, docIds, FAILURE_EXCEPTION, FAILURE_MSG, id, isTree, loginContext, originatingUsername, progress, RANDOM, repositoryName, schedulePath, schedulingTime, session, startTime, state, status, suspended, suspending, WORK_FAILED_EVENT, WORK_INSTANCE
Constructor and Description |
---|
AbstractRenditionBuilderWork(String key,
DocumentModel doc,
RenditionDefinition def) |
Modifier and Type | Method and Description |
---|---|
protected String |
buildId(DocumentModel doc,
RenditionDefinition def) |
void |
cleanUp(boolean ok,
Exception e)
This method is called after
AbstractWork.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 Work
|
String |
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 given
Work.getId() should always produce the same result. |
void |
work()
This method should implement the actual work done by the
Work instance. |
computeEntryKey, computeEntryKey, containsBlobHolder, getBlobHolder, getEntryKey, getStore, putBlobHolder, putBlobHolder, removeBlobHolder
buildWorkFailureEventProps, closeSession, commitOrRollbackTransaction, equals, getCompletionTime, getDocument, getDocuments, getId, getOriginatingUsername, getPartitionKey, getProgress, getRetryCount, getSchedulePath, getSchedulingTime, 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
protected final DocumentRef docRef
protected final String renditionName
protected static org.apache.commons.logging.Log log
public static final String CATEGORY
public AbstractRenditionBuilderWork(String key, DocumentModel doc, RenditionDefinition def)
protected String buildId(DocumentModel doc, RenditionDefinition def)
public String getTitle()
Work
public String getCategory()
Work
Used to choose an execution queue.
getCategory
in interface Work
getCategory
in class AbstractWork
null
for the defaultprotected String getTransientStoreName()
public boolean isIdempotent()
Work
Work.getId()
should always produce the same result.
The WorkManager implementation can safely skip duplicate executions of idempotent work.public boolean isCoalescing()
Work
public void work()
Work
Work
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 call Work.isSuspending()
, and if
true
call Work.suspended()
return early with saved state data.
Clean up can by implemented by #cleanUp()
.
work
in interface Work
work
in class AbstractWork
Work.isSuspending()
,
Work.suspended()
,
Work.cleanUp(boolean, java.lang.Exception)
public void cleanUp(boolean ok, Exception e)
AbstractWork
AbstractWork.work()
is done in a finally block, whether work completed normally or was in
error or was interrupted.cleanUp
in interface Work
cleanUp
in class AbstractWork
ok
- true
if the work completed normallye
- the exception, if availableprotected String getSourceDocumentModificationDate(DocumentModel doc)
protected abstract List<Blob> doComputeRendition(CoreSession session, DocumentModel doc, RenditionDefinition def)
session
- doc
- def
- Copyright © 2019 Nuxeo. All rights reserved.