public class ObjectListHarvestTask extends Object implements Callable<Date>, Serializable
Constructor and Description |
---|
ObjectListHarvestTask(org.dataone.service.types.v1.NodeReference d1NodeReference,
Integer batchSize)
Define the ObjectList Harvest task for a Member Node.
|
Modifier and Type | Method and Description |
---|---|
protected Date |
adjustFilterWindow(NodeComm nc,
int total,
int max,
Date fromDate,
Date toDate)
This method should optimize the time window size so that the total within group is not
more than the maximum synchronization will take.
|
Date |
call()
Calls listObjects on the Member Node and manages putting SyncObjects onto the SynchronizationObjectQueue (one per
object) for asynchronous processing.
|
protected SortedHarvestTimepointMap |
getFullObjectList(NodeComm nodeComm,
Integer maxToHarvest)
get the set of timepoints and associated pids to put on the sync queue
|
protected void |
spoolToSynchronizationQueue(SortedHarvestTimepointMap harvest,
SyncQueueFacade hzSyncObjectQueue,
NodeRegistrySyncService nodeRegistryService,
Integer requeueTolerance)
Submit the harvest to the sync queue, periodically updating the node's lastHarvestedDate
(able to do this since the pids are already sorted)
|
public ObjectListHarvestTask(org.dataone.service.types.v1.NodeReference d1NodeReference, Integer batchSize)
d1NodeReference
- batchSize
- public Date call() throws Exception
call
in interface Callable<Date>
NodeCommUnavailable
- - if the harvest task can't get a NodeComm from the poolInterruptedException
- - if puts to the synchronizationQueue are interrupted while waitingorg.dataone.service.exceptions.ServiceFailure
- - if any communication problem with the synchronizationQueue, the NodeComm service, or nodeRegistryorg.dataone.cn.batch.exceptions.ExecutionDisabledException
- - if synchronization is disabledorg.dataone.service.exceptions.NotImplemented
- - from listObjectsorg.dataone.service.exceptions.NotAuthorized
- - from listObjectsorg.dataone.service.exceptions.InvalidToken
- - from listObjectsorg.dataone.service.exceptions.InvalidRequest
- - from listObjectsorg.dataone.service.exceptions.NotFound
- - from listObjectsException
protected void spoolToSynchronizationQueue(SortedHarvestTimepointMap harvest, SyncQueueFacade hzSyncObjectQueue, NodeRegistrySyncService nodeRegistryService, Integer requeueTolerance) throws InterruptedException, org.dataone.service.exceptions.ServiceFailure
harvest
- hzSyncObjectQueue
- nodeRegistryService
- InterruptedException
org.dataone.service.exceptions.ServiceFailure
protected SortedHarvestTimepointMap getFullObjectList(NodeComm nodeComm, Integer maxToHarvest) throws org.dataone.service.exceptions.NotFound, org.dataone.service.exceptions.ServiceFailure, org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotImplemented, org.dataone.cn.batch.exceptions.ExecutionDisabledException
nodeComm
- org.dataone.service.exceptions.NotFound
org.dataone.service.exceptions.ServiceFailure
org.dataone.service.exceptions.InvalidRequest
org.dataone.service.exceptions.NotImplemented
org.dataone.service.exceptions.NotAuthorized
org.dataone.service.exceptions.InvalidToken
org.dataone.cn.batch.exceptions.ExecutionDisabledException
protected Date adjustFilterWindow(NodeComm nc, int total, int max, Date fromDate, Date toDate) throws org.dataone.service.exceptions.InvalidRequest, org.dataone.service.exceptions.InvalidToken, org.dataone.service.exceptions.NotAuthorized, org.dataone.service.exceptions.NotImplemented, org.dataone.service.exceptions.ServiceFailure
org.dataone.service.exceptions.InvalidRequest
org.dataone.service.exceptions.InvalidToken
org.dataone.service.exceptions.NotAuthorized
org.dataone.service.exceptions.NotImplemented
org.dataone.service.exceptions.ServiceFailure
Copyright © 2021. All rights reserved.