public class CleanUpStuckIndexingDocumentsJob
extends java.lang.Object
implements org.quartz.Job
Constructor and Description |
---|
CleanUpStuckIndexingDocumentsJob() |
Modifier and Type | Method and Description |
---|---|
protected int |
compareNodeTime(org.alfresco.service.cmr.repository.NodeService nodeService,
org.alfresco.service.cmr.repository.NodeRef n,
org.alfresco.service.namespace.QName timeProperty,
java.util.Calendar compareTime)
Return -1/0/+1 if n.timeProperty ==/> compareTime.
|
protected java.util.Calendar |
computeThresholdTime(java.lang.Integer threshold)
Get threshold value in seconds; default is 300 or 5 minutes but can be overridden by "threshold"
request parameter.
|
void |
execute(org.quartz.JobExecutionContext context) |
protected void |
executeTransactionWorkAsUser(org.alfresco.service.ServiceRegistry serviceRegistry,
java.lang.String user,
org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback<java.lang.String> transactionWork) |
protected java.util.List<org.alfresco.service.cmr.repository.NodeRef> |
findIndexingDocs(org.alfresco.service.ServiceRegistry serviceRegistry,
java.lang.Integer maxDocsToUnlock,
java.lang.String queryBase)
Return any docs with indexStatus=Indexing, regardless of age.
|
protected void |
processStuckDocs(org.alfresco.service.ServiceRegistry serviceRegistry,
org.alfresco.service.cmr.repository.NodeService nodeService,
java.lang.String queryBase,
java.lang.Integer maxDocsToUnlock,
java.util.Calendar thresholdTime)
Attempt every which way to unlock the given doc; Working Copy Owner is special because we run the operations as them.
|
protected void |
resetIndexStatus(org.alfresco.service.ServiceRegistry serviceRegistry,
org.alfresco.service.cmr.repository.NodeService nodeService,
org.alfresco.service.cmr.repository.NodeRef node,
java.lang.String lockOwner)
This method will reset the index status of a node
|
protected void |
unlockDocument(org.alfresco.service.ServiceRegistry serviceRegistry,
org.alfresco.service.cmr.repository.NodeService nodeService,
org.alfresco.service.cmr.repository.NodeRef node,
java.lang.String lockOwner)
This method will unlock the node as well as reset the index status
|
public void execute(org.quartz.JobExecutionContext context)
execute
in interface org.quartz.Job
protected void processStuckDocs(org.alfresco.service.ServiceRegistry serviceRegistry, org.alfresco.service.cmr.repository.NodeService nodeService, java.lang.String queryBase, java.lang.Integer maxDocsToUnlock, java.util.Calendar thresholdTime)
protected java.util.Calendar computeThresholdTime(java.lang.Integer threshold)
protected java.util.List<org.alfresco.service.cmr.repository.NodeRef> findIndexingDocs(org.alfresco.service.ServiceRegistry serviceRegistry, java.lang.Integer maxDocsToUnlock, java.lang.String queryBase)
protected int compareNodeTime(org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef n, org.alfresco.service.namespace.QName timeProperty, java.util.Calendar compareTime)
protected void unlockDocument(org.alfresco.service.ServiceRegistry serviceRegistry, org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef node, java.lang.String lockOwner)
serviceRegistry
- nodeService
- node
- - the node to unlock and resetlockOwner
- - the user who has the document lockedprotected void resetIndexStatus(org.alfresco.service.ServiceRegistry serviceRegistry, org.alfresco.service.cmr.repository.NodeService nodeService, org.alfresco.service.cmr.repository.NodeRef node, java.lang.String lockOwner)
serviceRegistry
- nodeService
- node
- - the node to unlock and resetlockOwner
- - the user who has the document lockedprotected void executeTransactionWorkAsUser(org.alfresco.service.ServiceRegistry serviceRegistry, java.lang.String user, org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback<java.lang.String> transactionWork)