Java Code Examples for java.util.concurrent.ArrayBlockingQueue#offer()
The following examples show how to use
java.util.concurrent.ArrayBlockingQueue#offer() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: TestArrays.java From openjdk-systemtest with Apache License 2.0 | 6 votes |
public void test() throws Exception{ Vector<Object> vector = new Vector<Object>(); ArrayBlockingQueue<Object> queue = new ArrayBlockingQueue<Object>(50000); Random myRandom = new Random(); for (int j = 0; j<50000; j++){ if (myRandom.nextInt(2) == 0){ vector.add(i); queue.offer(i); } else{ vector.add(k); queue.offer(k); } } assertTrue(Arrays.equals(vector.toArray(), queue.toArray())); }
Example 2
Source File: ChannelDataFlowOperation.java From twister2 with Apache License 2.0 | 6 votes |
/** * Put the message into internal queues, to be serialized and then send to the network channel * * @param source source * @param message data * @param target target * @param flags flags * @param routingParameters routing parameters * @param pendingSendMessages the message queue * @return true if message is accepted */ private boolean offerForSend(int source, Object message, int target, int flags, RoutingParameters routingParameters, ArrayBlockingQueue<OutMessage> pendingSendMessages) { if (pendingSendMessages.remainingCapacity() > 0) { int path = DEFAULT_PATH; if (routingParameters.getExternalRoutes().size() > 0) { path = routingParameters.getDestinationId(); } OutMessage sendMessage = new OutMessage(source, edge, path, target, flags, routingParameters.getInternalRoutes(), routingParameters.getExternalRoutes(), dataType, keyType, this, message); // now try to put this into pending return pendingSendMessages.offer(sendMessage); } return false; }
Example 3
Source File: ControlledChannelOperation.java From twister2 with Apache License 2.0 | 6 votes |
/** * Put the message into internal queues, to be serialized and then send to the network channel * * @param source source * @param message data * @param target target * @param flags flags * @param routingParameters routing parameters * @param pendingSendMessages the message queue * @return true if message is accepted */ private boolean offerForSend(int source, Object message, int target, int flags, RoutingParameters routingParameters, ArrayBlockingQueue<OutMessage> pendingSendMessages) { if (pendingSendMessages.remainingCapacity() > 0) { int path = DEFAULT_PATH; if (routingParameters.getExternalRoutes().size() > 0) { path = routingParameters.getDestinationId(); } OutMessage sendMessage = new OutMessage(source, edge, path, target, flags, routingParameters.getInternalRoutes(), routingParameters.getExternalRoutes(), dataType, keyType, this, message); // now try to put this into pending return pendingSendMessages.offer(sendMessage); } return false; }
Example 4
Source File: ImportBase.java From gemfirexd-oss with Apache License 2.0 | 6 votes |
private static boolean addQueueData(ArrayBlockingQueue<QueueData> queue, QueueData data, AtomicReference<Throwable> err, Thread[] threads) throws CacheClosedException, InterruptedException { while (!queue.offer(data, 1, TimeUnit.SECONDS)) { // check cancellation Misc.checkIfCacheClosing(null); // check if a thread failed if (err.get() != null) { return false; } // should we have something else? boolean someAlive = false; for (Thread thr: threads) { if (thr.isAlive()) { someAlive = true; break; } } if (!someAlive) { return false; } } return true; }
Example 5
Source File: ImportBase.java From gemfirexd-oss with Apache License 2.0 | 6 votes |
private static boolean addQueueData(ArrayBlockingQueue<QueueData> queue, QueueData data, AtomicReference<Throwable> err, Thread[] threads) throws CacheClosedException, InterruptedException { while (!queue.offer(data, 1, TimeUnit.SECONDS)) { // check cancellation Misc.checkIfCacheClosing(null); // check if a thread failed if (err.get() != null) { return false; } // should we have something else? boolean someAlive = false; for (Thread thr: threads) { if (thr.isAlive()) { someAlive = true; break; } } if (!someAlive) { return false; } } return true; }
Example 6
Source File: IdGrabber.java From quaerite with Apache License 2.0 | 5 votes |
protected int addSet(ArrayBlockingQueue<Set<String>> ids, Set<String> set) throws InterruptedException { int sz = set.size(); //don't bother adding if set size == 0 if (sz == 0) { return sz; } boolean added = ids.offer(set, 1, TimeUnit.SECONDS); LOG.debug("id grabber: " + added + " " + ids.size()); while (!added) { added = ids.offer(set, 1, TimeUnit.SECONDS); LOG.debug("waiting to add"); } return sz; }
Example 7
Source File: ArrayBlockingQueueDemo5.java From java-technology-stack with MIT License | 5 votes |
public static void main(String[] args) throws InterruptedException { ArrayBlockingQueue<Integer> queue = new ArrayBlockingQueue<Integer>(5); queue.offer(1); queue.offer(2); queue.offer(3); System.out.println("Queue Contains" + queue); System.out.println("Removing From head: " + queue.poll()); System.out.println("Queue Contains" + queue); System.out.println("Removing From head: " + queue.poll()); System.out.println("Queue Contains" + queue); System.out.println("Removing From head: " + queue.poll()); System.out.println("Queue Contains" + queue); System.out.println("Removing From head: " + queue.poll()); System.out.println("Queue Contains" + queue); }
Example 8
Source File: TreeBroadcast.java From twister2 with Apache License 2.0 | 5 votes |
@Override public boolean handleReceivedChannelMessage(ChannelMessage currentMessage) { int src = router.mainTaskOfExecutor(instancePlan.getThisWorker(), CommunicationContext.DEFAULT_DESTINATION); RoutingParameters routingParameters; if (routingParametersCache.containsKey(src)) { routingParameters = routingParametersCache.get(src); } else { routingParameters = sendRoutingParameters(src, CommunicationContext.DEFAULT_DESTINATION); } ArrayBlockingQueue<OutMessage> pendingSendMessages = pendingSendMessagesPerSource.get(src); // create a send message to keep track of the serialization at the initial stage // the sub-edge is 0 int di = -1; if (routingParameters.getExternalRoutes().size() > 0) { di = routingParameters.getDestinationId(); } OutMessage sendMessage = new OutMessage(src, currentMessage.getHeader().getEdge(), di, CommunicationContext.DEFAULT_DESTINATION, currentMessage.getHeader().getFlags(), routingParameters.getInternalRoutes(), routingParameters.getExternalRoutes(), dataType, this.keyType, delegate, CommunicationContext.EMPTY_OBJECT); sendMessage.getChannelMessages().offer(currentMessage); // we need to update here if (!currentMessage.isOutCountUpdated()) { currentMessage.incrementRefCount(routingParameters.getExternalRoutes().size()); currentMessage.setOutCountUpdated(true); } // this is a complete message sendMessage.setSendState(OutMessage.SendState.SERIALIZED); // now try to put this into pending return pendingSendMessages.offer(sendMessage); }
Example 9
Source File: LocalRangeScanUploader.java From emodb with Apache License 2.0 | 5 votes |
private void submitResultBatch(BatchContext context, ArrayBlockingQueue<Batch> queue, Batch batch, boolean continuedInNextBatch) throws IOException, InterruptedException { if (!batch.isEmpty()) { // Mark this batch as open context.openBatch(batch); try { batch.setContinuedInNextBatch(continuedInNextBatch); // Attempt to submit the batch to the result queue without blocking if (!queue.offer(batch)) { // The queue was full. Increment the blocked counter and synchronously wait for queue availability _blockedRangeScans.inc(); try { while (!queue.offer(batch, 5, TimeUnit.SECONDS)) { context.propagateExceptionIfPresent(); } } finally { _blockedRangeScans.dec(); } } _batchesSubmitted.inc(); _batchRowsSubmitted.inc(batch.getResults().size()); } catch (IOException | InterruptedException e) { // Batch was never submitted so un-mark that it is open context.closeBatch(batch, e); throw e; } } }
Example 10
Source File: DispatcherTest.java From flink with Apache License 2.0 | 5 votes |
/** * Tests that a failing {@link JobManagerRunner} will be properly cleaned up. */ @Test public void testFailingJobManagerRunnerCleanup() throws Exception { final FlinkException testException = new FlinkException("Test exception."); final ArrayBlockingQueue<Optional<Exception>> queue = new ArrayBlockingQueue<>(2); dispatcher = createAndStartDispatcher( heartbeatServices, haServices, new BlockingJobManagerRunnerFactory(() -> { final Optional<Exception> take = queue.take(); final Exception exception = take.orElse(null); if (exception != null) { throw exception; } })); final DispatcherGateway dispatcherGateway = dispatcher.getSelfGateway(DispatcherGateway.class); CompletableFuture<Acknowledge> submissionFuture = dispatcherGateway.submitJob(jobGraph, TIMEOUT); assertThat(submissionFuture.isDone(), is(false)); queue.offer(Optional.of(testException)); try { submissionFuture.get(); fail("Should fail because we could not instantiate the JobManagerRunner."); } catch (Exception e) { assertThat(ExceptionUtils.findThrowable(e, t -> t.equals(testException)).isPresent(), is(true)); } submissionFuture = dispatcherGateway.submitJob(jobGraph, TIMEOUT); queue.offer(Optional.empty()); submissionFuture.get(); }
Example 11
Source File: DispatcherTest.java From Flink-CEPplus with Apache License 2.0 | 4 votes |
/** * Tests that a failing {@link JobManagerRunner} will be properly cleaned up. */ @Test public void testFailingJobManagerRunnerCleanup() throws Exception { final FlinkException testException = new FlinkException("Test exception."); final ArrayBlockingQueue<Optional<Exception>> queue = new ArrayBlockingQueue<>(2); dispatcher = createAndStartDispatcher( heartbeatServices, haServices, new BlockingJobManagerRunnerFactory(() -> { final Optional<Exception> take = queue.take(); final Exception exception = take.orElse(null); if (exception != null) { throw exception; } })); dispatcherLeaderElectionService.isLeader(UUID.randomUUID()).get(); final DispatcherGateway dispatcherGateway = dispatcher.getSelfGateway(DispatcherGateway.class); CompletableFuture<Acknowledge> submissionFuture = dispatcherGateway.submitJob(jobGraph, TIMEOUT); assertThat(submissionFuture.isDone(), is(false)); queue.offer(Optional.of(testException)); try { submissionFuture.get(); fail("Should fail because we could not instantiate the JobManagerRunner."); } catch (Exception e) { assertThat(ExceptionUtils.findThrowable(e, t -> t.equals(testException)).isPresent(), is(true)); } submissionFuture = dispatcherGateway.submitJob(jobGraph, TIMEOUT); queue.offer(Optional.empty()); submissionFuture.get(); }
Example 12
Source File: DispatcherTest.java From flink with Apache License 2.0 | 4 votes |
/** * Tests that a failing {@link JobManagerRunner} will be properly cleaned up. */ @Test public void testFailingJobManagerRunnerCleanup() throws Exception { final FlinkException testException = new FlinkException("Test exception."); final ArrayBlockingQueue<Optional<Exception>> queue = new ArrayBlockingQueue<>(2); dispatcher = createAndStartDispatcher( heartbeatServices, haServices, new BlockingJobManagerRunnerFactory(() -> { final Optional<Exception> take = queue.take(); final Exception exception = take.orElse(null); if (exception != null) { throw exception; } })); dispatcherLeaderElectionService.isLeader(UUID.randomUUID()).get(); final DispatcherGateway dispatcherGateway = dispatcher.getSelfGateway(DispatcherGateway.class); CompletableFuture<Acknowledge> submissionFuture = dispatcherGateway.submitJob(jobGraph, TIMEOUT); assertThat(submissionFuture.isDone(), is(false)); queue.offer(Optional.of(testException)); try { submissionFuture.get(); fail("Should fail because we could not instantiate the JobManagerRunner."); } catch (Exception e) { assertThat(ExceptionUtils.findThrowable(e, t -> t.equals(testException)).isPresent(), is(true)); } submissionFuture = dispatcherGateway.submitJob(jobGraph, TIMEOUT); queue.offer(Optional.empty()); submissionFuture.get(); }