I need to run some code only once when I starts the play server. When using the GlobalSettings.OnStart() I notice that the code is executed only after the first (http) request to the server. Any idea how can I run my code just after the server starts and before any request is sent?
Thanks
That is the behavior when the application is in development mode,
play run
. When it's running in production mode,play start
, then youronStart
method will run immediately when the application starts prior to any requests.You can emulate that (or I should say, workaround this unfortunate dichotomous design), by using this plugin, which, I find useful also in general:
addSbtPlugin("com.jamesward" % "play-auto-refresh" % "0.0.11")
(plugins.sbt)And no, it is not really currently documented in any right place, that this is how OnStart works.