2012-08-08 38 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

相关问题