このエントリはPlay frameworkひとりアドベントカレンダーの15日目です。
ネタなくなってもーた(´・ω・`)
というわけでだいたい作れるようになったので、Playの動作環境そのもののチューニングに手をつけていきましょう。
JVMチューニング
playコマンドから追っていくとわかるのですが、JVMの起動パラメータは、 ${PLAY_HOME}/framework/build
にベタ書きされてます。
Macにbrewでインストールした場合、 /usr/local/Cellar/play/2.0.4/libexec/framework/build
にあります。
zip解凍で入れた場合、解答したディレクトリを PLAY_HOME
とすると、 ${PLAY_HOME}/framework/build
にあります。
$ tail -1 /usr/local/Cellar/play/2.0.4/libexec/framework/build java ${DEBUG_PARAM} -Xms512M -Xmx1536M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=384M -Dfile.encoding=UTF8 -Dplay.version="${PLAY_VERSION}" -Dsbt.ivy.home=`dirname $0`/../repository -Dplay.home=`dirname $0` -Dsbt.boot.properties=`dirname $0`/sbt/sbt.boot.properties -jar `dirname $0`/sbt/sbt-launch.jar "$@"
ここをちょちょっと書き換える以外になさそうな感じ。
なんということでしょう。。。
タイムアウトを伸ばす
なんかいろいろやってると、
[error] play - Cannot invoke the action, eventually got an error: Thrown(akka.pattern.AskTimeoutException: Timed out)
なんてエラーが出る時があります。
そんな時はtimeoutを伸ばしましょう。
Play framework2ではAkkaなるものを使っているようです。
${PLAY_HOME}/repository/local/com.typesafe.akka/akka-actor/2.0.2/ivys/ivy.xml
を見ると、Akka 2.0.2を利用しているようです。
なので、このAkka用の設定を、各プロジェクトの /conf/application.conf
に書いて調整します。
play.akka.actor.retrieveBodyParserTimeout = 30s
めでたしめでたし。