|
Akka/Scala example source code file (TransformationFrontend.java)
The TransformationFrontend.java Akka example source codepackage sample.cluster.transformation; import static sample.cluster.transformation.TransformationMessages.BACKEND_REGISTRATION; import java.util.ArrayList; import java.util.List; import sample.cluster.transformation.TransformationMessages.JobFailed; import sample.cluster.transformation.TransformationMessages.TransformationJob; import akka.actor.ActorRef; import akka.actor.Terminated; import akka.actor.UntypedActor; //#frontend public class TransformationFrontend extends UntypedActor { List<ActorRef> backends = new ArrayList<ActorRef>(); int jobCounter = 0; @Override public void onReceive(Object message) { if ((message instanceof TransformationJob) && backends.isEmpty()) { TransformationJob job = (TransformationJob) message; getSender().tell( new JobFailed("Service unavailable, try again later", job), getSender()); } else if (message instanceof TransformationJob) { TransformationJob job = (TransformationJob) message; jobCounter++; backends.get(jobCounter % backends.size()) .forward(job, getContext()); } else if (message.equals(BACKEND_REGISTRATION)) { getContext().watch(getSender()); backends.add(getSender()); } else if (message instanceof Terminated) { Terminated terminated = (Terminated) message; backends.remove(terminated.getActor()); } else { unhandled(message); } } } //#frontend Other Akka source code examplesHere is a short list of links related to this Akka TransformationFrontend.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.