Scala Remote Actors - подводные камни

При написании кода Scala RemoteActor я заметил несколько подводных камней:

  • RemoteActor.classLoader = getClass (). GetClassLoader () должен быть установлен, чтобы избежать "java.lang.ClassNotFoundException"
  • ссылка не всегда работает из-за состояния гонки, при котором NetKernel (средство, отвечающее за удаленную пересылку сообщений), поддерживающее удаленного субъекта, может закрыться до того, как прокси удаленного субъекта (точнее, делегат-посредник) сможет отправить сообщение, удаленно указывающее на локальный выход ". (Стефан Ту)
  • RemoteActor.select не всегда возвращает один и тот же делегат (RemoteActor.select - результат детерминированный?)
  • Отправка делегата по сети препятствует нормальному завершению работы приложения (RemoteActor отменяет регистрацию субъекта)
  • Удаленные участники не будут завершены, если RemoteActor.alive () и RemoteActor.register () используются вне act. (См. Ответ Магнуса)

Есть ли другие подводные камни, о которых следует знать программисту?


person Stefan K.    schedule 21.07.2010    source источник
comment
В настоящее время я сталкиваюсь с ловушкой RemoteActor.classLoader = ..., но даже если мне нужна эта строка где-то, я не могу понять, где! Кто-нибудь может указать на объяснение этого?   -  person Scott Morrison    schedule 25.07.2010


Ответы (1)


Вот еще один; вам нужно поместить вызовы RemoteActor.alive () и RemoteActor.register () в метод действия, когда вы определяете своего актера, иначе актер не завершится, когда вы вызовете exit (); см. Как убить RemoteActor?

person Magnus    schedule 25.07.2010