LoginSignup
9
10

More than 5 years have passed since last update.

Play Framework (2.1~2.4) で作成したアプリでバッチを実行する。

Last updated at Posted at 2015-09-14

メリット

  • 機能の再利用ができる。(特にORM)
  • 新しいプロジェクトを作らなくて済む。

適当なクラス(例:batch/HogeMain.java)に main() 関数を作成し、以下のコマンドで実行できます。

開発環境の場合
$ activator "run-main batch.HogeMain"

デプロイ環境の場合
$ java -cp lib/* batch.HogeMain

ただしアプリが起動されていないと実行できない(ORMなど設定や状態に依存する)ものは例外を吐いたりします。その場合、以下のように Play を実行状態にしてあげれば良いようです。

Play 2.3 まで

Scala
Play.start(new play.api.DefaultApplication(new java.io.File("."), getClass.getClassLoader, None, Mode.Prod))
Java
Play.start(new play.api.DefaultApplication(new java.io.File("."), getClass().getClassLoader(), null, Mode.Prod()));

Play 2.4 の場合

Scala
val env = new Environment(new java.io.File("."), getClass.getClassLoader, Mode.Prod)
val context = ApplicationLoader.createContext(env)
val loader = ApplicationLoader(context)
val app = loader.load(context)
Play.start(app);

参考にさせて頂きました!
http://argius.hatenablog.jp/entry/20121011/1349953945

9
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
10