2012-08-08 44 views

回答

1

好吧,如果您有很多運行像NoSql.em()的任何方法,和NoSQL是在另一個罐子文件,它不會在Play.classloader中,並且在那個方法中,我終於做了一個Play.classloader.getAnnotatedResources(),它給了我一個List,並且我繼續比較第一個,當它發生變化時,我知道Play重新加載。就目前而言,這種黑客技術對我來說很有效,而且nosql層現在與內存中的nosql數據庫不斷保持一致。

雖然@OnApplicationStart不會被稱爲「每個」單次播放重新加載,但您可以使用上述方法知道它何時重新加載100%的時間,而不是使用@時間的75% OnApplicationStart。

2

每當您的應用程序重新加載(這可能是經常在開發模式),該@onApplicationStart方法被調用。

因此,只需使用@onApplicationStart創建引導作業,即可實現您所需的功能。

你可以看到更多相關信息,通過查看播放文檔引導工作 - http://www.playframework.org/documentation/1.2.5/jobs#concepts

+0

不是真的。然而,我們發現我們可以調用Play.classloader.getAnnotatedClasses(OurAnnotation.class);它總是按順序返回類,我們可以將類[0]與我們以前的加載類進行比較。當班級與原來班級不相等時,我們知道遊戲重新加載。 – 2012-09-05 20:58:31

+0

ps。 @ONApplicationStart被稱爲「大多數」重新加載但絕對不是所有基於我們的測試重新加載....我們終於得到它的工作,雖然。 – 2012-09-05 20:59:18

相關問題