Akka: Varias formas de matar a un actor

A pesar de que ya han pasado algunos días desde Halloween, hoy podremos saciar nuestro instinto asesino.

17c8f21e452c8161a7f19b8fc3f7d1a5

En este post volvemos a tocar el toolkit Akka, diseñado para crear aplicaciones distribuidas utilizando actores. Dichos actores funcionan muy bien y son muy útiles pero llega un momento en el que hay que acabar con ellos. ¿Cómo podemos hacerlo? ¿Podemos hacer que parezca un accidente? ¿Son muy resistentes al cianuro? Hoy esperamos responder a alguna de estas preguntas.

Forma 1: Envenenamiento

tumblr_n6da8xJdLi1t4x1pbo1_500

Lo más sencillo que podemos hacer para matar a un actor es enviarle un mensaje de tipo PoisonPill. De esta forma, en cuanto se trate el mensaje, el actor morirá.

seanBeanCharacter ! PoisonPill

Este mecanismo no sirve sólo para el asesinato, sino también para el suicidio. Para ello basta con que el actor se envíe a si mismo un PoisonPill.

self ! PoisonPill

Forma 2: Parada cardiaca

jack-30-rock-heart-attack-study

Otra opción que tenemos es parar el actor. Para ello podemos hacer uso del método stop.

context.stop(seanBeanCharacter)

La diferencia fundamental entre utilizar un PoisonPill y una llamada al método stop, es que el método stop realiza una parada inmediata del actor. En el caso de las PoisonPill, al ser un mensaje más que recibe el actor, es necesario esperar a que se trate dicho mensaje para que el actor muera.

Forma 3: Provocar una hemorragia interna

tumblr_mk2nondHhx1qasthro1_r1_500

Finalmente, podemos hacer que un actor sufra una excepción enviandole el mensaje de tipo Kill.

seanBeanCharacter ! Kill

Este mensaje, cuando sea tratado por el actor, generará una excepción de tipo ActorKilledException. Este tipo de muerte lo podemos usar cuando queramos manejar este tipo de excepción en la política de supervisión. Es posible decidir que acción realizará un supervisor cuando un actor suyo lance una excepción de este tipo.

Última voluntad

Todos los actores, por muy mal que sea la película, tienen derecho a una última voluntad. Dicha última voluntad está materializada por una serie de acciones, como parar a los actores que tiene bajo su supervisión. Además, es posible añadir funcionalidad propia sobrescribiendo el método postStop.

Y esto es todo. Solo recordad una cosa. Si usáis alguna de estas técnicas, en ningún caso conocéis a los chicos de Scalera :p

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s