in twill-yarn/src/main/java/org/apache/twill/internal/appmaster/ApplicationMasterService.java [294:327]
public ListenableFuture<String> onReceived(String messageId, Message message) {
LOG.debug("Message received: {} {}.", messageId, message);
SettableFuture<String> result = SettableFuture.create();
Runnable completion = getMessageCompletion(messageId, result);
if (handleSecureStoreUpdate(message)) {
runningContainers.sendToAll(message, completion);
return result;
}
if (handleSetInstances(message, completion)) {
return result;
}
if (handleRestartRunnablesInstances(message, completion)) {
return result;
}
// Replicate messages to all runnables
if (message.getScope() == Message.Scope.ALL_RUNNABLE) {
runningContainers.sendToAll(message, completion);
return result;
}
// Replicate message to a particular runnable.
if (message.getScope() == Message.Scope.RUNNABLE) {
runningContainers.sendToRunnable(message.getRunnableName(), message, completion);
return result;
}
LOG.info("Message ignored. {}", message);
return Futures.immediateFuture(messageId);
}