Last minute awesomization of the priority based mailbox API docs
This commit is contained in:
parent
2b4c8b2508
commit
98b74a974c
2 changed files with 21 additions and 31 deletions
|
|
@ -123,30 +123,21 @@ public class DispatcherDocTestBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
//#prio-mailbox
|
//#prio-mailbox
|
||||||
public static class PrioMailbox implements MailboxType {
|
public static class PrioMailbox extends UnboundedPriorityMailbox {
|
||||||
|
|
||||||
static final PriorityGenerator generator = new PriorityGenerator() { // Create a new PriorityGenerator, lower prio means more important
|
|
||||||
@Override
|
|
||||||
public int gen(Object message) {
|
|
||||||
if (message.equals("highpriority"))
|
|
||||||
return 0; // 'highpriority messages should be treated first if possible
|
|
||||||
else if (message.equals("lowpriority"))
|
|
||||||
return 100; // 'lowpriority messages should be treated last if possible
|
|
||||||
else if (message.equals(Actors.poisonPill()))
|
|
||||||
return 1000; // PoisonPill when no other left
|
|
||||||
else
|
|
||||||
return 50; // We default to 50
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
private UnboundedPriorityMailbox priorityMailbox;
|
|
||||||
|
|
||||||
public PrioMailbox(Config config) { // needed for reflective instantiation
|
public PrioMailbox(Config config) { // needed for reflective instantiation
|
||||||
priorityMailbox = new UnboundedPriorityMailbox(generator);
|
super(new PriorityGenerator() { // Create a new PriorityGenerator, lower prio means more important
|
||||||
}
|
@Override
|
||||||
|
public int gen(Object message) {
|
||||||
public MessageQueue create(Option<ActorContext> owner) {
|
if (message.equals("highpriority"))
|
||||||
return priorityMailbox.create(owner);
|
return 0; // 'highpriority messages should be treated first if possible
|
||||||
|
else if (message.equals("lowpriority"))
|
||||||
|
return 100; // 'lowpriority messages should be treated last if possible
|
||||||
|
else if (message.equals(Actors.poisonPill()))
|
||||||
|
return 1000; // PoisonPill when no other left
|
||||||
|
else
|
||||||
|
return 50; // We default to 50
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//#prio-mailbox
|
//#prio-mailbox
|
||||||
|
|
|
||||||
|
|
@ -112,15 +112,14 @@ object DispatcherDocSpec {
|
||||||
import akka.actor.ActorContext
|
import akka.actor.ActorContext
|
||||||
import com.typesafe.config.Config
|
import com.typesafe.config.Config
|
||||||
|
|
||||||
val generator = PriorityGenerator { // Create a new PriorityGenerator, lower prio means more important
|
|
||||||
case 'highpriority ⇒ 0 // 'highpriority messages should be treated first if possible
|
|
||||||
case 'lowpriority ⇒ 100 // 'lowpriority messages should be treated last if possible
|
|
||||||
case PoisonPill ⇒ 1000 // PoisonPill when no other left
|
|
||||||
case otherwise ⇒ 50 // We default to 50
|
|
||||||
}
|
|
||||||
|
|
||||||
// We create a new Priority dispatcher and seed it with the priority generator
|
// We create a new Priority dispatcher and seed it with the priority generator
|
||||||
class PrioMailbox(config: Config) extends UnboundedPriorityMailbox(generator)
|
class PrioMailbox(config: Config) extends UnboundedPriorityMailbox(
|
||||||
|
PriorityGenerator { // Create a new PriorityGenerator, lower prio means more important
|
||||||
|
case 'highpriority ⇒ 0 // 'highpriority messages should be treated first if possible
|
||||||
|
case 'lowpriority ⇒ 100 // 'lowpriority messages should be treated last if possible
|
||||||
|
case PoisonPill ⇒ 1000 // PoisonPill when no other left
|
||||||
|
case otherwise ⇒ 50 // We default to 50
|
||||||
|
})
|
||||||
//#prio-mailbox
|
//#prio-mailbox
|
||||||
|
|
||||||
class MyActor extends Actor {
|
class MyActor extends Actor {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue