private void actorTerminated(final Terminated message) { LOG.info("Actor termination {} received", message); for (Address addr : watchedActors.removeAll(message.getActor())) { versions.remove(addr); final Bucket<T> bucket = remoteBuckets.remove(addr); if (bucket != null) { LOG.debug("Source actor dead, removing bucket {} from {}", bucket, addr); onBucketRemoved(addr, bucket); } } }
/** * Handles connections errors that occur when the need consumer actors are terminated. * * @param t messages that holds a reference to consumer actor that was terminated */ private void handleConnectionErrors(Terminated t) { for (String uri : crawlWonNodes.keySet()) { WonNodeConnection con = crawlWonNodes.get(uri); if (con != null) { if (con.getNeedCreatedConsumer().equals(t.getActor())) { log.error("NeedCreatedConsumer '{}' of won '{}' has been shut down", t.getActor(), uri); addFailedWonNode(con.getWonNodeInfo().getWonNodeURI(), con); } else if (con.getNeedActivatedConsumer().equals(t.getActor())) { log.error("NeedActivatedConsumer '{}' of won '{}' has been shut down", t.getActor(), uri); addFailedWonNode(con.getWonNodeInfo().getWonNodeURI(), con); } else if (con.getNeedDeactivatedConsumer().equals(t.getActor())) { log.error("NeedDeactivatedConsumer '{}' of won '{}' has been shut down", t.getActor(), uri); addFailedWonNode(con.getWonNodeInfo().getWonNodeURI(), con); } else if (con.getHintProducer().equals(t.getActor())) { log.error("HintProducer '{}' of won '{}' has been shut down", t.getActor(), uri); addFailedWonNode(con.getWonNodeInfo().getWonNodeURI(), con); } } } }
private void terminated(final Terminated terminated) { streamForwarderStartedOrStopped(); final ActorRef terminatedActor = terminated.getActor(); log.debug("Received Terminated-Message: {}", terminated); if (!Objects.equals(terminatedActor, forwarder)) { log.warning("Received Terminated-Message from actor <{}> which does not match current forwarder <{}>", terminatedActor, forwarder); return; } getContext().unwatch(terminatedActor); forwarder = null; scheduleNextStream(); }
private void terminated(final Terminated terminated) { streamForwarderStartedOrStopped(); final ActorRef terminatedActor = terminated.getActor(); log.debug("Received Terminated-Message: {}", terminated); if (!Objects.equals(terminatedActor, forwarder)) { log.warning("Received Terminated-Message from actor <{}> which does not match current forwarder <{}>", terminatedActor, forwarder); return; } getContext().unwatch(terminatedActor); forwarder = null; scheduleNextStream(); }
@Override public void unhandled(Object message) { if (message instanceof Terminated && ((Terminated) message).getActor().equals(workExecutor)) { getContext().stop(getSelf()); } else if (message instanceof WorkIsReady) { // do nothing } else { super.unhandled(message); } }
/** * Enqueues {@code envelope} at the first position in the mailbox. If the message contained in * the envelope is a {@link Terminated} message, it will be ensured that it can be re-received * by the actor. * * @param envelope the envelope to enqueue. */ private void enqueueFirst(final Envelope envelope) { mailbox.enqueueFirst(getSelf(), envelope); if (envelope.message() instanceof Terminated) { actorCell.terminatedQueuedFor(((Terminated) envelope.message()).getActor()); } }
/** * Enqueues {@code envelope} at the first position in the mailbox. If the message contained in * the envelope is a {@link Terminated} message, it will be ensured that it can be re-received * by the actor. * * @param envelope the envelope to enqueue. */ private void enqueueFirst(final Envelope envelope) { mailbox.enqueueFirst(getSelf(), envelope); if (envelope.message() instanceof Terminated) { actorCell.terminatedQueuedFor(((Terminated) envelope.message()).getActor()); } }
@Override public Receive createReceive() { return receiveBuilder() .match(TransformationJob.class, job -> backends.isEmpty(), job -> { sender().tell(new JobFailed("Service unavailable, try again later", job), sender()); }) .match(TransformationJob.class, job -> { jobCounter++; backends.get(jobCounter % backends.size()) .forward(job, getContext()); }) .matchEquals(BACKEND_REGISTRATION, message -> { getContext().watch(sender()); backends.add(sender()); }) .match(Terminated.class, terminated -> { backends.remove(terminated.getActor()); }) .build(); } }
ActorRef target = ((Terminated) message).getActor(); if (jobManager.equals(target)) { LOG.info("Lost connection to JobManager {}. Triggering connection timeout.",
ActorRef target = ((Terminated) message).getActor(); if (jobManager.equals(target)) { LOG.info("Lost connection to JobManager {}. Triggering connection timeout.",
ActorRef target = ((Terminated) message).getActor(); if (jobManager.equals(target)) { LOG.info("Lost connection to JobManager {}. Triggering connection timeout.",
ActorRef target = ((Terminated) message).getActor(); if (jobManager.equals(target)) { LOG.info("Lost connection to JobManager {}. Triggering connection timeout.",