public synchronized void setState(final DropFlowFileState state) { setState(state, null); }
@Override public DropFlowFileRequest cancelDropFlowFileRequest(final String requestIdentifier) { final DropFlowFileRequest request = dropRequestMap.remove(requestIdentifier); if (request == null) { return null; } request.cancel(); return request; }
partitionReadLock.lock(); try { dropRequest.setOriginalSize(size()); dropRequest.setState(DropFlowFileState.DROPPING_FLOWFILES); final DropFlowFileRequest partitionRequest = new DropFlowFileRequest(dropRequest.getRequestIdentifier() + "-" + localPartition.getNodeIdentifier()); adjustSize(-partitionRequest.getDroppedSize().getObjectCount(), -partitionRequest.getDroppedSize().getByteCount()); dropRequest.setDroppedSize(new QueueSize(dropRequest.getDroppedSize().getObjectCount() + partitionRequest.getDroppedSize().getObjectCount(), dropRequest.getDroppedSize().getByteCount() + partitionRequest.getDroppedSize().getByteCount())); droppedCount += partitionRequest.getDroppedSize().getObjectCount(); droppedBytes += partitionRequest.getDroppedSize().getByteCount(); dropRequest.setDroppedSize(new QueueSize(droppedCount, droppedBytes)); dropRequest.setCurrentSize(size()); if (partitionRequest.getState() == DropFlowFileState.CANCELED) { dropRequest.cancel(); break; } else if (partitionRequest.getState() == DropFlowFileState.FAILURE) { dropRequest.setState(DropFlowFileState.FAILURE, partitionRequest.getFailureReason()); break; if (dropRequest.getState() == DropFlowFileState.DROPPING_FLOWFILES) { dropRequest.setState(DropFlowFileState.COMPLETE); dropRequest.setState(DropFlowFileState.FAILURE, "Failed to drop FlowFiles due to " + e.getMessage() + ". See log for more details.");
for (final Map.Entry<String, DropFlowFileRequest> entry : dropRequestMap.entrySet()) { final DropFlowFileRequest request = entry.getValue(); final boolean completed = request.getState() == DropFlowFileState.COMPLETE || request.getState() == DropFlowFileState.FAILURE; if (completed && System.currentTimeMillis() - request.getLastUpdated() > TimeUnit.MINUTES.toMillis(5L)) { toDrop.add(entry.getKey()); final DropFlowFileRequest dropRequest = new DropFlowFileRequest(requestIdentifier); final QueueSize originalSize = size(); dropRequest.setCurrentSize(originalSize); dropRequest.setOriginalSize(originalSize); if (originalSize.getObjectCount() == 0) { dropRequest.setDroppedSize(originalSize); dropRequest.setState(DropFlowFileState.COMPLETE); dropRequestMap.put(requestIdentifier, dropRequest); return dropRequest;
public void dropFlowFiles(final DropFlowFileRequest dropRequest, final String requestor) { final String requestIdentifier = dropRequest.getRequestIdentifier(); dropRequest.setState(DropFlowFileState.DROPPING_FLOWFILES); logger.debug("For DropFlowFileRequest {}, original size is {}", requestIdentifier, size()); if (dropRequest.getState() == DropFlowFileState.CANCELED) { logger.info("Cancel requested for DropFlowFileRequest {}", requestIdentifier); return; dropRequest.setState(DropFlowFileState.FAILURE, "Failed to drop FlowFiles due to " + ioe.toString()); return; dropRequest.setCurrentSize(size()); dropRequest.setDroppedSize(dropRequest.getDroppedSize().add(droppedSize)); if (dropRequest.getState() == DropFlowFileState.CANCELED) { logger.info("Cancel requested for DropFlowFileRequest {}", requestIdentifier); return; dropRequest.setState(DropFlowFileState.FAILURE, "Failed to drop FlowFiles due to " + ioe.toString()); return; dropRequest.setCurrentSize(size()); dropRequest.setDroppedSize(dropRequest.getDroppedSize().add(droppedSize)); swapMode = false; incrementSwapQueueSize(-droppedSize.getObjectCount(), -droppedSize.getByteCount(), 0); if (dropRequest.getState() == DropFlowFileState.CANCELED) { logger.info("Cancel requested for DropFlowFileRequest {}", requestIdentifier);
public synchronized void setState(final DropFlowFileState state) { setState(state, null); }