Marginal engineer blog

マージナル エンジニア ブログ

Playframework 小ネタ そのいち

こんにちは! はじめまして。

おとぼけエンジニアの堀田です。

あまり大層なことは書けませんが、本日よりぼちぼち更新していきます。

弊社では、自社サービスに一部、Scala+Playframework2+Slick3を採用しています。
当分は、Slick3で苦労したことやPlayframework2.4から2.5に移行した時にいろいろと戸惑ったことを 備忘録的に小ネタとして書いていこう思います。

今回はサーバーの状態を監視し、WebSocketを使用して、クライアントに通知する処理を 移行した時の内容を書いていこうと思います。

例えば、S3上にあるファイルが作成されたかを監視し、クライアントに通知したい時、WebSocketを使用して実現可能です。 (ChunkedとEventSourceを使う方法もあります。)
2.4まではPlayframework同梱のIteratee/Enumeratorを使用してごにょごにょとしていました。

以下のような感じです。

2.5からはIterateeは非推奨となり、Akka Streamsを使用することが推奨されています。 そのため、Iterateeに依存していたWebSocket.usingなどのメソッドも同様に非推奨となっています。

上記コードを2.5ベースに変更すると以下のようなコードになります。

S3のファイル監視については、AWS Lambda使用も考えられますが、 ひとまずは簡易に対応しております。

Akkaはまだまだ知らないことも多いので、 もっとフル活用できるようにしていきたいと思っております。

簡易ではありますが、 今後もこんなゆるい感じでぼちぼち更新していきます。

あ、忘れてた。。。(汗)
弊社サービスもどうぞ、よろしくお願いいたします!!

https://biograph.jp