import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;
import akka.actor.UntypedActor;
import akka.dispatch.PriorityGenerator;
import akka.dispatch.UnboundedPriorityMailbox;
import com.typesafe.config.Config;
import com.typesafe.config.ConfigFactory;
import java.io.File;
class MsgPriorityMailBox extends UnboundedPriorityMailbox {
public MsgPriorityMailBox(ActorSystem.Settings settings, Config config){
super(new PriorityGenerator() {
@Override
public int gen(Object message) {
if(message.equals("张三")){
return 0;
}else if(message.equals("李四")){
return 1;
}else if(message.equals("王五")){
return 2;
}else {
return 3;
}
}
});
}
}
class priorityActor extends UntypedActor{
@Override
public void onReceive(Object message) throws Exception{
System.out.print(message+"---\n");
}
}
class Test1202 {
public static void main(String[] args) throws Exception{
Config firstConfig = ConfigFactory.parseFile(new File("./conf/application.conf")).withFallback(ConfigFactory.load());
ActorSystem system= ActorSystem.create("sys1",firstConfig);
ActorRef ref= system.actorOf(Props.create(priorityActor.class).withMailbox("msgprio-mailbox"),"priorityActor");
Object[] message={"王五","张三","李四","小二"};
for(Object msg:message){
ref.tell(msg,ActorRef.noSender());
}
}
}