しかし、アクターを使用する場合、何が問題なのですか?
プロパティファイルの読み取り/書き込みが必要な場合。私のJavaの例があります。しかし、それでも Akka Actors と一緒です。
アクターActorFile
が 1 つのファイルを表すとしましょう。うーん.. おそらくそれは 1 つのファイルを表すことはできません。右?(できればいいですね)。したがって、次のようないくつかのファイルを表しますPropertyFilesActor
。
なぜこのようなものを使用しないでください:
public class PropertyFilesActor extends UntypedActor {
Map<String, String> filesContent = new LinkedHashMap<String, String>();
{ // here we should use real files of cource
filesContent.put("file1.xml", "");
filesContent.put("file2.xml", "");
}
@Override
public void onReceive(Object message) throws Exception {
if (message instanceof WriteMessage) {
WriteMessage writeMessage = (WriteMessage) message;
String content = filesContent.get(writeMessage.fileName);
String newContent = content + writeMessage.stringToWrite;
filesContent.put(writeMessage.fileName, newContent);
}
else if (message instanceof ReadMessage) {
ReadMessage readMessage = (ReadMessage) message;
String currentContent = filesContent.get(readMessage.fileName);
// Send the current content back to the sender
getSender().tell(new ReadMessage(readMessage.fileName, currentContent), getSelf());
}
else unhandled(message);
}
}
...メッセージはパラメーター (fileName) で送信されます
独自の があり、次のin-box
ようなメッセージを受け入れます。
- WriteLine(ファイル名, 文字列)
- ReadLine(ファイル名, 文字列)
in-box
これらのメッセージは、次々と順番に に格納されます。アクターは、ボックスからメッセージを受信することで作業を行います。つまり、保存/読み取りを行い、その間にフィードバックsender ! message
を送り返します。
したがって、プロパティ ファイルに書き込み、Web ページのコンテンツを表示して送信するとします。ページの表示を開始し (データをファイルに保存するメッセージを送信した直後)、フィードバックを受け取るとすぐに、更新されたファイルのデータでページの一部を更新します (ajax による)。