aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/akka/MailboxAspect.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/akka/MailboxAspect.scala')
-rw-r--r--src/main/scala/akka/MailboxAspect.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/scala/akka/MailboxAspect.scala b/src/main/scala/akka/MailboxAspect.scala
new file mode 100644
index 00000000..3dfc9c6a
--- /dev/null
+++ b/src/main/scala/akka/MailboxAspect.scala
@@ -0,0 +1,26 @@
+package akka
+
+import org.aspectj.lang.annotation.{Pointcut, Before, Aspect}
+import java.util.concurrent.{TimeUnit, Executors}
+
+@Aspect
+class MailboxAspect {
+
+ @Pointcut("execution(akka.dispatch.Mailbox.new(..))")
+ protected def mailboxMonitor:Unit = {}
+
+ @Before("mailboxMonitor() && this(mb)")
+ def before(mb: akka.dispatch.Mailbox) : Unit = {
+ val scheduler = Executors.newScheduledThreadPool(1);
+
+ scheduler.scheduleAtFixedRate(new Runnable {
+ def run() {
+ println("Mailbox: " + mb.actor.self.path)
+ println("NOM: " + mb.numberOfMessages)
+ println("Messages: " + mb.hasMessages)
+ print("Dispatcher throughput: " + mb.dispatcher.throughput)
+ println(mb.dispatcher.id)
+ }
+ }, 6, 4, TimeUnit.SECONDS)
+ }
+}