2012-02-21 6 views
5

je suis arrivé mes pieds mouillés Actor la programmation orientée avec une langue appelée SALSA, qui permet aux acteurs de passer d'une machine à une autre.Erlang/Scala Migration des acteurs d'un nœud à un autre

Je me demandais si cela était quelque chose qui pourrait être fait en utilisant soit Scala ou Erlang qui sont deux langages de programmation orientés Actor qui ont beaucoup plus d'élan derrière eux.

Si l'une ou l'autre de ces langues prend en charge cette fonctionnalité, pourriez-vous me diriger vers un document qui indique comment implémenter quelque chose comme ça?

Répondre

0

En guise d'introduction, jetez un coup d'œil au très excitant akka documentation. Ça vaut vraiment la peine de le lire. Peut-être pourriez-vous repenser vos acteurs en mouvement d'une machine à l'autre, car Akka fait cela automatiquement par configuration, autant que je sache.

3

Eh bien, Erlang ne permet pas (afaik) de déplacer des processus (à tout le moins, le PID est lié au nœud). Si vous voulez faire cela pour une fonction particulière, ce que vous pouvez faire est de démarrer un processus sur un autre nœud (en utilisant le rpc:call et une fonction wrapper, par exemple) et lui passer l'état.

Bien sûr, cela fonctionne si vous gardez votre état autour et pas dans le dictionnaire de processus. Et, bien sûr, le PID du nouveau processus sera différent, mais vous pouvez, par exemple, laisser votre processus existant suspendu et transmettre les messages au nouveau.

Questions connexes