Play-slick con SecureSocial: ejecutar DB IO en un grupo de subprocesos separados

Tengo una aplicación Play 2.2.1 que utilizaplay slick 0.5.0.8 para persistir los datos en un backend Postgresql ySecureSocial 2.1.2 Para manejar la autorización del usuario.

Dado que las transacciones de play-slick están bloqueando, he creado unslick-context contexto de ejecución en mi/conf/application.conf archivo, según elInstrucciones encontradas en la Wiki del plugin.:

play {
  akka {
    actor {
      slick-context = {
        fork-join-executor {
          parallelism-min = 300
          parallelism-max = 300
        }
      }
    }
  }
}

Esto me permite crear una Acción de controlador que se ejecuta en un contexto de ejecución separado y no bloquea subprocesos en el conjunto de subprocesos predeterminado. P.ej./app/controllers/Application.scala:

Ejemplo uno: uso de DBAction de play-slick:

import play.api.db.slick._
object Application extends Controller{ 

  // this controller Action won't block threads in the default pool since DBAction uses my separate slick-context execution context
  def recipes = DBAction { implicit rs =>
    val recipes  = Query(Recipes).list
    Ok(recipes.mkString)
  }

}

Para ciertas acciones del controlador quiero poder utilizar las acciones de SecureSocial (SecuredAction, UserAwareAction etc) en conjunto con play-slick'sDBAction. ¿Cuál es la mejor manera de combinar los dos?

Me doy cuenta de que puedo hacer algo como lo que se muestra a continuación, pero tengo entendido que la llamada DB no usará misslick-context y por lo tanto bloqueará el conjunto de hilos por defecto:

Ejemplo dos - Usando la acción de SecureSocial:

import play.api.db.slick._
import securesocial.core._
object Application extends Controller{ 

  // changing from a DBAction to a SecuredAction so that I can use SS's goodies
  def recipes = SecuredAction { implicit request =>
    val recipes  =  DB.withSession { implicit session:Session => Query(Recipes).list } // i'm guessing this WILL BLOCK the default thread pool since it isn't using my separate slick-context execution context??
    Ok(recipes.mkString)
  }

}

¿Estoy en lo cierto al suponer que el Ejemplo Dos usará / bloqueará el conjunto de subprocesos predeterminado en lugar de mi grupo separado?slick-context grupo de hilos? Si es así, ¿hay alguna manera de cambiar esto?

Obviamente podría evitar esto porsubiendo el grupo de hilos por defecto de Play (default-dispatcher), pero idealmente quiero mantener el conjunto de subprocesos predeterminado bastante magro y ejecutar todas las llamadas de base de datos de bloqueo en un conjunto separado.

¡Asistencia apreciada!

Respuestas a la pregunta(1)

Su respuesta a la pregunta