Erlang / Scala Миграция актеров с одного узла на другой - PullRequest
5 голосов
/ 22 февраля 2012

Я промочил ноги в Actor Oriented Programming с языком SALSA , который позволяет актерам переходить с одной машины на другую.

Мне было интересно, можно ли это сделать с помощью Scala или Erlang, которые являются двумя языками программирования, ориентированными на акторов, которые имеют гораздо больший импульс.

Если какой-либо из этих языков поддерживает эту функцию, не могли бы вы указать мне какой-нибудь материал, в котором говорится, как реализовать нечто подобное?

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Ну, Эрланг (afaik) не позволяет перемещать процессы (по крайней мере, PID привязан к узлу). Если вы хотите сделать это для конкретной функции, то вы можете запустить процесс на другом узле (например, с помощью rpc:call и функции-оболочки) и передать ему состояние.

Конечно, это работает, если вы сохраняете свое состояние, а не в словаре процесса. И, конечно, PID нового процесса будет другим, но вы можете, например, оставить свой существующий процесс зависшим и переслать сообщения новому.

0 голосов
/ 22 февраля 2012

В качестве вступления взгляните на очень интересную документацию akka . Это определенно стоит прочитать. Возможно, вы могли бы переосмыслить своих движущихся актеров с одной машины на другую, потому что, насколько я знаю, akka делает это автоматически по конфигурации.

...