Class ThreeDBatchUpdateWork
java.lang.Object
org.nuxeo.ecm.core.work.AbstractWork
org.nuxeo.ecm.platform.threed.service.ThreeDBatchUpdateWork
- All Implemented Interfaces:
Serializable
,Work
Work running batch conversions to update 3D document type preview assets
- Since:
- 8.4
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.nuxeo.ecm.core.work.api.Work
Work.Progress, Work.State
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
protected static final String
static final String
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
-
Method Summary
Modifier and TypeMethodDescriptionprotected static String
computeIdPrefix
(String repositoryName, String docId) protected void
Fire aTHREED_CONVERSIONS_DONE_EVENT
Gets the category for this work.Returns a key that can be used by the WorkManager implementation to guarantee that works with the same partition key will be executed in the order they are submitted.protected ThreeD
getTitle()
Gets a human-readable name for this work instance.boolean
When true the Work is part of a group, Works of the group have the sameWork.getPartitionKey()
.boolean
Returns true if a work with a givenWork.getId()
should always produce the same result.void
Called whenWork.isGroupJoin()
returns true and after the last Work of the group.protected void
saveMainInfo
(DocumentModel doc, ThreeDInfo info) protected void
saveNewProperties
(DocumentModel doc, Serializable properties, String schema) protected void
saveNewRenderViews
(DocumentModel doc, List<ThreeDRenderView> threeDRenderViews) protected void
saveNewTransmissionThreeDs
(DocumentModel doc, List<TransmissionThreeD> transmissionThreeDs) 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, getCompletionTime, getDocument, getDocuments, getId, getOriginatingUsername, 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, 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
isCoalescing
-
Field Details
-
CATEGORY_THREED_CONVERSION
- See Also:
-
THREED_CONVERSIONS_DONE_EVENT
- See Also:
-
STATUS_DONE
- See Also:
-
-
Constructor Details
-
ThreeDBatchUpdateWork
-
-
Method Details
-
computeIdPrefix
-
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
-
getTitle
Description copied from interface:Work
Gets a human-readable name for this work instance.- Returns:
- a human-readable name
-
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. -
isGroupJoin
public boolean isGroupJoin()Description copied from interface:Work
When true the Work is part of a group, Works of the group have the sameWork.getPartitionKey()
. When all Works of the group are done theWork.onGroupJoinCompletion()
hook is called. -
getPartitionKey
Description copied from interface:Work
Returns a key that can be used by the WorkManager implementation to guarantee that works with the same partition key will be executed in the order they are submitted.- Specified by:
getPartitionKey
in interfaceWork
- Overrides:
getPartitionKey
in classAbstractWork
-
onGroupJoinCompletion
public void onGroupJoinCompletion()Description copied from interface:Work
Called whenWork.isGroupJoin()
returns true and after the last Work of the group. -
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:
-
getThreeDToConvert
-
saveNewProperties
-
saveMainInfo
-
saveNewTransmissionThreeDs
protected void saveNewTransmissionThreeDs(DocumentModel doc, List<TransmissionThreeD> transmissionThreeDs) -
saveNewRenderViews
-
fireThreeDConversionsDoneEvent
Fire aTHREED_CONVERSIONS_DONE_EVENT
-