Documentation

You are viewing the documentation for the 2.0.8 release in the 2.0.x series of releases. The latest stable release series is 2.4.x.

§内部の Akka システムの設定

Play 2.0 はリクエスト処理のために内部的に Akka Actor システムを利用しています。Actor システムの設定は、 application.conf ファイルで行うことができます。

§Action invoker アクター

Action invoker アクターは Action のコードを実行するために使われます。複数の Action を並列に実行するために、複数のアクターを起動し、それらを Round Robin ルータで制御しています。また、全てのアクターはステートレスです。

Action invoker アクターは、リクエストボディをパースするために使われる ボディパーサ を取得するためにも使われます。この取得処理はアクターからの返信(パースに使われる BodyParser オブジェクト)を待機するという実装になっていて、設定されたタイムアウト時間を経過すると失敗する仕様です。

Action invoker アクターは actions-dispatcher ディスパッチャによって実行されます。

§Promise invoker アクター

Promise invoker アクターは Promise による非同期的なコールバックを行うためのアクターです。並列に Promise のコールバックを実行するためには、それだけ多くの Promise invoker アクターが利用可能でなければなりません。また、全ての Promise invoker アクターはステートレスです。

Promise invoker アクターは promises-dispatcher ディスパッチャによって実行されます。

§WebSockets agent アクター

各 WebSocket 接続の状態は Agent アクターによって管理されます。WebSocket 接続のたびに新しい Actor が生成され、ソケットがクローズされた時に Actor が破棄されます。このアクターはステートフルです。

WebSocket agent アクターは websockets-dispatcher ディスパッチャによって実行されます。

§デフォルト設定

Play 2.0 が利用するデフォルト設定を以下に示します。アプリケーション側で上書きしていない場合は、このリファレンス設定が使われます。必要に応じてカスタマイズしてください。

play {
    
    akka {
        event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
        loglevel = WARNING
        
        actor {
            
            deployment {

                /actions {
                    router = round-robin
                    nr-of-instances = 24
                }

                /promises {
                    router = round-robin
                    nr-of-instances = 24
                }

            }
            
            retrieveBodyParserTimeout = 1 second
            
            actions-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 1.0
                    parallelism-max = 24
                }
            }

            promises-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 1.0
                    parallelism-max = 24
                }
            }

            websockets-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 1.0
                    parallelism-max = 24
                }
            }

            default-dispatcher = {
                fork-join-executor {
                    parallelism-factor = 1.0
                    parallelism-max = 24
                }
            }
            
        }
        
    }
    
}