Play framework2

Play frameworkを本番環境にデプロイする場合に、PIDファイルを別の場所に置きたいなと思ったりします。

デフォルトだとプロジェクトディレクトリの直下にRUNNING_PIDというファイルが作成されます。

このRUNNING_PIDファイルを作る所のコードを確認すると

play.core.server.NettyServer

の中にあるようです。

def createServer(applicationPath

Play framework2

Play Framework 2.0系のプロジェクトで、リクエスト毎にログを出力するような設定をした場合、ログファイルをローテートしたくなったりします。

場合によってはlogrotateの設定でやったりもします。

が、今回は、Play Frameworkのログの設定でローテートしてみます。

Play Frameworkは、LogBackというミドルウェアを使用してログを出力します。

で、必要な設定などはすでにPlay Framework自体が ...

Play framework2

リクエストを受けた直後のアクションについては

/app/Global.scala

というオブジェクトのファイルを作り

GlobalSettingsを継承します。

このGlobalSettingsというトレイトには

beforeStart
onStart
onStop
onRouteRequest
onError
onHandlerNotFound
onBadRequest ...

Play framework2

Play Frameworkはなんか、デフォルトで正常に動いていると、ログが少ないなと思ったりします。

正常に動いたように見えても、データがおかしいのを拾っている場合もあります。

そんな時は、どんなSQLが叩かれているのかと言うのを見たくなります。

Ruby on Railsでは、developmentモードで起動していると常にSQLの実行ログが出たりしますが

Play Frameworkでは設定を追加しないと駄目なようです。

設 ...

Play framework2, Scala

これは、Play Framework で使用しているAkkaのデフォルト設定による物で、ボディパーサのタイムアウトが1秒に設定されています。

retrieveBodyParserTimeout = 1 second

なので、負荷をかけていって、一つのリクエストが1秒を超えたあたりでタイムアウトのエラーが発生してしまいます。

そこで、Akkaの設定を追加してあげれば良いのですが、どこに追加したら良いかというと

決まりは無い感じですが

Play framework2

application.confには前環境で共通の内容を設定
prod.confには、本番環境用のみのものを設定

という感じで、本番と開発で設定を分けたいなと思います。

これを実現するには

起動時のパラメータに以下のような設定を追加することで実現出来ます。
config.resource=prod.conf
このconfig.resourceというのは、Play プロジェクト内のリソースとしてのprod.confを読み込みます、と ...

Play framework2, Scala

APIDOCとか、Documentをみたら、分かる事ではあるが、はまりやすいので書いておく


とした場合に

action1を叩いてからaction2を叩くと
セッションの情報がtest2 -> value2だけになる。

test1とtest2のセッションを保持したいなら

とする

たぶん

Play framework2, Scala

Scalaの開発をVMで行っているわけでありますが

素のPlay frameworkだと、色々やってるうちにメモリを浪費してしまうようです。

メモリリークでは無いけど、必要なメモリをどんどん確保してしまうみたい。

なので、ヒープの上限という意味で割り当てを指定してみます。

毎回Play起動時に指定するのは面倒なので、環境変数で。

#~/.bashrc を開いて、一番下あたりに

と書き込んでターミナルを再起動します ...

Play framework2, Scala

Play frameworkは便利ですが、そのまま稼働させたい時などにわざわざ

なんて打ちたくありません。

でも、playコマンドにそのままstartと引数を付けて叩くと、コマンド一発で起動する事が出来ます。

ところが、

なんてやった場合に、ポートが80番にならない。

よくよく調べてみると、playコマンドに対してstartと80の引数が渡された状態のようで

playはstartだけを有効な引数として ...

Play framework2, Scala

Ubuntu 11.xx上で、Play framework 2.0 for ScalaからImageMagickを使う

ということで、今回のコンセプトですが

cookpadにはtohuがある

ぼくらにはない

でもapacheのモジュールで作るのもしんどい

という事で、Play framework for Scalaで作るという事なのです

まずはJDKのインストール

これは、

からダウンロードしま ...

Play framework2, Scala

Ruby on Railsは、フルスタックで、テーブルのスキーマもリビジョン管理が出来るフレームワークですが、Play! Frameworkもそれに近い事が可能となっています。

Ruby on Railsで言うマイグレーションファイルは、Play! Frameworkでは

conf/evolutionsディレクトリになります。

このディレクトリに1.sqlという感じに、連番でsqlファイルを作成すると
その順番で実行時にスキーマの更新が行われます ...

Play framework2, Scala

Play frameworkでは、eclipseでプロジェクトを開けるようにするコマンドが存在するのでその機能を使用する。

まず、作ったプロジェクトのディレクトリに移動する。

コマンドを叩く

これで、eclipseで読み込む準備が完了

続いてeclipse側でPlayScalaExampleをインポートします。

eclipseのworkspaceにPlayScalaExampleを移動して、eclipseのメニューから ...

Play framework2, Scala

Liftを使うかPlay frameworkを使うか、というところで、悩んでいるので

とりあえず、Play frameworkも試してみる。

Scalaをセットアップするのは、JDK入れて適当な場所にScalaを展開してパスを通すだけで良いので、これは省略する。

Play frameworkは

本家()

からダウンロードする。

Scalaを展開したディレクトリの隣あたりにPlay frameworkを展開。