2013-08-19 83 views
4

當我啓動播放服務器時,我只需要運行一次代碼。當使用GlobalSettings.OnStart()時,我注意到代碼僅在對服務器的第一個(http)請求之後執行。任何想法如何才能在服務器啓動後,發送任何請求之前運行我的代碼?GlobalSettings onStart僅在第一次請求後纔會觸發

感謝

回答

11

也就是說當應用處於開發模式,play run行爲。當它在生產模式下運行時,play start,那麼當應用程序在任何請求之前啓動時,您的onStart方法將立即運行。

+0

非常感謝。它回答了我的問題並解決了我的問題。我不知道我是否在Play文檔中錯過了這一點,因爲我不記得看到這些,並且我閱讀了大部分文檔。 – user2696705

+0

生產和開發之間這種差異的動機是什麼? – matanster

1

你可以模仿(或者我應該說,解決方法這個不幸的二分法設計),通過使用這個插件,其中,我發現有用也一般:

addSbtPlugin("com.jamesward" % "play-auto-refresh" % "0.0.11")(plugins.sbt)

而且不,它目前沒有記錄在任何正確的地方,這就是OnStart的工作原理。

相關問題