protected void terminate() { LOG.info("Terminate JobClientActor."); toBeTerminated = true; disconnectFromJobManager(); getSelf().tell(decorateMessage(PoisonPill.getInstance()), ActorRef.noSender()); }
private void connectToJobManager(ActorRef jobManager) { LOG.info("Connect to JobManager {}.", jobManager); if (jobManager != ActorRef.noSender()) { getContext().unwatch(jobManager); } this.jobManager = jobManager; getContext().watch(jobManager); unregisterConnectionTimeout(); }
@Override public void notifyLeaderAddress(String leaderAddress, UUID leaderSessionID) { getSelf().tell( decorateMessage(new JobManagerLeaderAddress(leaderAddress, leaderSessionID)), getSelf()); }
logAndPrintMessage((ExecutionGraphMessages.ExecutionStateChanged) message); } else if (message instanceof ExecutionGraphMessages.JobStatusChanged) { logAndPrintMessage((ExecutionGraphMessages.JobStatusChanged) message); logAndPrintMessage("New JobManager elected. Connecting to " + msg.address()); disconnectFromJobManager(); AkkaUtils.getActorRefFuture(msg.address(), getContext().system(), timeout) .onSuccess(new OnSuccess<ActorRef>() { @Override }, getContext().dispatcher()); } else if (isClientConnected() && connectionTimeoutId == null) { registerConnectionTimeout(); connectToJobManager(msg.jobManager()); logAndPrintMessage("Connected to JobManager at " + msg.jobManager() + " with leader session id " + leaderSessionID + '.'); connectedToJobManager(); if (isClientConnected()) { this.client.tell(decorateMessage(message), getSelf()); terminate();
private void registerConnectionTimeout() { if (connectionTimeout != null) { connectionTimeout.cancel(); } connectionTimeoutId = UUID.randomUUID(); connectionTimeout = getContext().system().scheduler().scheduleOnce( timeout, getSelf(), decorateMessage(new JobClientMessages.ConnectionTimeout(connectionTimeoutId)), getContext().dispatcher(), ActorRef.noSender() ); }
@Override public void onSuccess(ActorRef result) throws Throwable { getSelf().tell(decorateMessage(new JobManagerActorRef(result)), ActorRef.noSender()); } }, getContext().dispatcher());
private void disconnectFromJobManager() { LOG.info("Disconnect from JobManager {}.", jobManager); if (jobManager != ActorRef.noSender()) { getContext().unwatch(jobManager); jobManager = ActorRef.noSender(); } leaderSessionID = null; }
logAndPrintMessage((ExecutionGraphMessages.ExecutionStateChanged) message); } else if (message instanceof ExecutionGraphMessages.JobStatusChanged) { logAndPrintMessage((ExecutionGraphMessages.JobStatusChanged) message); logAndPrintMessage("New JobManager elected. Connecting to " + msg.address()); disconnectFromJobManager(); AkkaUtils.getActorRefFuture(msg.address(), getContext().system(), timeout) .onSuccess(new OnSuccess<ActorRef>() { @Override }, getContext().dispatcher()); } else if (isClientConnected() && connectionTimeoutId == null) { registerConnectionTimeout(); connectToJobManager(msg.jobManager()); logAndPrintMessage("Connected to JobManager at " + msg.jobManager() + " with leader session id " + leaderSessionID + '.'); connectedToJobManager(); if (isClientConnected()) { this.client.tell(decorateMessage(message), getSelf()); terminate();
private void registerConnectionTimeout() { if (connectionTimeout != null) { connectionTimeout.cancel(); } connectionTimeoutId = UUID.randomUUID(); connectionTimeout = getContext().system().scheduler().scheduleOnce( timeout, getSelf(), decorateMessage(new JobClientMessages.ConnectionTimeout(connectionTimeoutId)), getContext().dispatcher(), ActorRef.noSender() ); }
@Override public void notifyLeaderAddress(String leaderAddress, UUID leaderSessionID) { getSelf().tell( decorateMessage(new JobManagerLeaderAddress(leaderAddress, leaderSessionID)), getSelf()); }
@Override public void onSuccess(ActorRef result) throws Throwable { getSelf().tell(decorateMessage(new JobManagerActorRef(result)), ActorRef.noSender()); } }, getContext().dispatcher());
private void disconnectFromJobManager() { LOG.info("Disconnect from JobManager {}.", jobManager); if (jobManager != ActorRef.noSender()) { getContext().unwatch(jobManager); jobManager = ActorRef.noSender(); } leaderSessionID = null; }
logAndPrintMessage((ExecutionGraphMessages.ExecutionStateChanged) message); } else if (message instanceof ExecutionGraphMessages.JobStatusChanged) { logAndPrintMessage((ExecutionGraphMessages.JobStatusChanged) message); logAndPrintMessage("New JobManager elected. Connecting to " + msg.address()); disconnectFromJobManager(); AkkaUtils.getActorRefFuture(msg.address(), getContext().system(), timeout) .onSuccess(new OnSuccess<ActorRef>() { @Override }, getContext().dispatcher()); } else if (isClientConnected() && connectionTimeoutId == null) { registerConnectionTimeout(); connectToJobManager(msg.jobManager()); logAndPrintMessage("Connected to JobManager at " + msg.jobManager() + " with leader session id " + leaderSessionID + '.'); connectedToJobManager(); if (isClientConnected()) { this.client.tell(decorateMessage(message), getSelf()); terminate();
protected void terminate() { LOG.info("Terminate JobClientActor."); toBeTerminated = true; disconnectFromJobManager(); getSelf().tell(decorateMessage(PoisonPill.getInstance()), ActorRef.noSender()); }
private void registerConnectionTimeout() { if (connectionTimeout != null) { connectionTimeout.cancel(); } connectionTimeoutId = UUID.randomUUID(); connectionTimeout = getContext().system().scheduler().scheduleOnce( timeout, getSelf(), decorateMessage(new JobClientMessages.ConnectionTimeout(connectionTimeoutId)), getContext().dispatcher(), ActorRef.noSender() ); }
@Override public void handleError(Exception exception) { LOG.error("Error occurred in the LeaderRetrievalService.", exception); getSelf().tell(decorateMessage(PoisonPill.getInstance()), getSelf()); }
private void connectToJobManager(ActorRef jobManager) { LOG.info("Connect to JobManager {}.", jobManager); if (jobManager != ActorRef.noSender()) { getContext().unwatch(jobManager); } this.jobManager = jobManager; getContext().watch(jobManager); unregisterConnectionTimeout(); }
@Override public void onSuccess(ActorRef result) throws Throwable { getSelf().tell(decorateMessage(new JobManagerActorRef(result)), ActorRef.noSender()); } }, getContext().dispatcher());
private void disconnectFromJobManager() { LOG.info("Disconnect from JobManager {}.", jobManager); if (jobManager != ActorRef.noSender()) { getContext().unwatch(jobManager); jobManager = ActorRef.noSender(); } leaderSessionID = null; }
logAndPrintMessage((ExecutionGraphMessages.ExecutionStateChanged) message); } else if (message instanceof ExecutionGraphMessages.JobStatusChanged) { logAndPrintMessage((ExecutionGraphMessages.JobStatusChanged) message); logAndPrintMessage("New JobManager elected. Connecting to " + msg.address()); disconnectFromJobManager(); AkkaUtils.getActorRefFuture(msg.address(), getContext().system(), timeout) .onSuccess(new OnSuccess<ActorRef>() { @Override }, getContext().dispatcher()); } else if (isClientConnected() && connectionTimeoutId == null) { registerConnectionTimeout(); connectToJobManager(msg.jobManager()); logAndPrintMessage("Connected to JobManager at " + msg.jobManager() + " with leader session id " + leaderSessionID + '.'); connectedToJobManager(); if (isClientConnected()) { this.client.tell(decorateMessage(message), getSelf()); terminate();