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