Home > akka-cm-dispatcher

akka-cm-dispatcher

Akka-cm-dispatcher is a project mainly written in ..., it's free.

Container managed thread pools for Akka Dispatchers

TESTED AGAINST GLASSFISH 2.1.1, JDK 1.6.0_17. Based on Spring WorkManagerTaskExecutors (http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jca/work/WorkManagerTaskExecutor.html)

Allows using container-managed thread pools (through JCA WorkManager) for Akka Dispathers. The following containers are supported:

  • GlassFish (use thread-pool/work manager obtained by name or default thread-pool)
  • JBoss (use WorkManager MBean obtainer by bean name or default work manager)
  • WebSphere 6.0+, WebLogic 9.0+(use work manager obtained by JNDI name, or default work manager)

GlassFish example:

val dispatcher = new ExecutorBasedEventDrivenDispatcher("name") with ContainerManagedThreadPoolBuilder dispatcher .withGlassFishManagedDefaultThreadPool // if you want to use default WorkManager .buildThreadPool

or

dispatcher .withGlassFishManagedThreadPool("actor-thread-pool")// if you want to use named thread pool .buildThreadPool

===Download, test and build===

  1. git clone git://github.com/remeniuk/akka-cm-dispatcher.git
  2. cd akka-cm-dispatcher
  3. sbt
  4. sbt> update
  5. sbt> test

===Run example===

  1. sbt> project glassfish-managed-dispatchers-example
  2. sbt> package
  3. Deploy glassfish-managed-dispatchers-example argetscala_2.8.0glassfish-managed-dispatchers-example_2.8.0-1.0.war to Glassfish
  4. Create named thread pool
  5. Find list of supported dispatchers at http://localhost:8080/glassfish-managed-dispatchers-example_2.8.0-1.0/examples/dispatcherTypes
  6. Run test at http://localhost:8080/glassfish-managed-dispatchers-example_2.8.0-1.0/examples/glassfish//<thread pool name / default for default Glassfish WorkManager>