diff options
author | Diego Parra <diegolparra@gmail.com> | 2013-05-05 20:33:28 -0300 |
---|---|---|
committer | Diego Parra <diegolparra@gmail.com> | 2013-05-05 20:33:28 -0300 |
commit | 2f81f03742860a0a57cebeea6f0160f3c0d80a48 (patch) | |
tree | 2715ea8499f8245d31976ff2450c47da3cf64f4c /src/main/scala/akka/MailboxAspect.scala | |
parent | 2caece9ef7574406c548b4a1f333de4c9579b3a2 (diff) | |
download | Kamon-2f81f03742860a0a57cebeea6f0160f3c0d80a48.tar.gz Kamon-2f81f03742860a0a57cebeea6f0160f3c0d80a48.tar.bz2 Kamon-2f81f03742860a0a57cebeea6f0160f3c0d80a48.zip |
added Mailbox, PoolMonitor and ActorSystem Aspects and fix newRelicReporter
Diffstat (limited to 'src/main/scala/akka/MailboxAspect.scala')
-rw-r--r-- | src/main/scala/akka/MailboxAspect.scala | 26 |
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) + } +} |