Video作家、リチャード・伊真岡のブログです。マーベリック株式会社で技術広報として働いています。この広告は、90日以上更新していないブログに表示しています。Remoteのサンプルがなんともわかりにくい気がするので、ここで図解してみることにしてみました。一つはLookupApplicationです。これらはコードに共通部分もありますが、別々のアプリケーションです。この記事ではCreationAppliationのみを解説します。LookupApplicationについては別記事にしようと思います。classをメッセージの型として使う方法です。足し、引き、掛け、割り算に相当する以下の4つが定義されています。MathOpそれぞれに対する結果型も用意されています。以下で見るようにActorはこれらの型のメッセージをやり取りして、計算の入力と結果を受け渡します。MathResultCalculatorActorは計算入力を受け取って結果を返す、CreationActorはCalculatorActorを生成して、計算を行わせるCalculatorActorCalculatorActorの実装は以下の通りです。}}例えばMultiply型のメッセージを受け取ったときは、その結果であるMultiplicationResult型のメッセージを送信元"sender"に投げ返します。}}計算の入力(MathOp型のメッセージ)を受け取ると、CalculatorActorを生成します。opMathResult型のメッセージを受け取ります。}以上の手順が終わったら、生成したCalculatorActorを以下のコードによって停止します。sender()となっていますが、これはMathResultのsenderなので、すなわちCalculatorActorです。context.stop(sender())CreateApplication最後にアプリケーションの説明です。なんだかこのmain関数はややこしいのですが...、とにかくstartRemoteWorkerSystem()とstartRemoteCreationSystem()という二つの関数を走らせるだけです。「コマンドライン引数」のCalculatorWorkerとCreationを渡すと、2つの関数をの別のプロセスで走らせることができます。Creation"args.isEmpty、すなわちコマンドライン引数を渡さないと、一つのプロセスの中で2つの関数を走らせます。}}startRemoteWorkerSystem()はActorSystemを初期化するだけで、それ自体は何もしません。startRemoteCreationSystem()はもう一つの関数startRemoteWorkerSystem()ないで作られたActorSystem("CalculatorSystem")のしたにCreationActorを生成します。Creationになり、remotecreation.confに以下を指定することによって実現しています。...}そしてあとはAkkaのスケジューラを使って、MultiplyとDivideメッセージを送り続け、CreationActorはCalculationActorを逐一生成、停止して計算を行っていきます。〜かつてない図書館をモデリングしてみようレガシーをぶっつぶせ。個人で初めて作ったwebサービスでの技術選択と調査の振り返り月別アーカイブはてなブログをはじめよう!richard-imaokaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。