我在哪里可以在 Play 中存储服务器生命周期对象!框架 1.2.7?

Posted

技术标签:

【中文标题】我在哪里可以在 Play 中存储服务器生命周期对象!框架 1.2.7?【英文标题】:Where can I store server lifetime objects in Play! Framework 1.2.7? 【发布时间】:2013-10-29 20:21:55 【问题描述】:

会玩!框架是否为生命周期应与进程相同的对象提供容器?

Play 2.0 具有提供 onStart 和 onStop 的 GlobalSettings,但没有用于进程生命周期对象的明显“容器”。

对于 Play 1.2.7,我需要:

    用于初始化一些资源的 onStart 挂钩 用于清理资源的 onStop 挂钩 用于管理进程生命周期对象的容器

建议?

【问题讨论】:

【参考方案1】:

您可以使用带有@OnApplicationStart@OnApplicationStop 的播放作业进行初始化和清理:http://www.playframework.com/documentation/1.2.7/jobs#anameconceptsBootstrapjobsa

另一种方法是编写自己的插件(它允许您加入更多的播放过程,如 beforeActionInvocation 等):

public class ApplicationPlugin extends PlayPlugin 
    @Override
    public void onApplicationStart()  

    @Override
    public void onApplicationStop()  

    @Override
    public void beforeInvocation()  

    @Override
    public void beforeActionInvocation(Method actionMethod) 

    // etc. ...

插件还需要在conf/play.plugins文件中优先考虑:

1000:my.java.package.ApplicationPlugin

根据您要存储的对象,您可以将“进程生命周期对象”放入数据库中,还是只放入一个 HashMap?我也在考虑缓存 (http://www.playframework.com/documentation/1.2.7/cache),但我不确定这是否是最好的主意(例如,因为过期超时)。

【讨论】:

以上是关于我在哪里可以在 Play 中存储服务器生命周期对象!框架 1.2.7?的主要内容,如果未能解决你的问题,请参考以下文章

我在哪里可以获得Play源代码?

ceph rgw lifecycle( 对象存储 对象生命周期)

ceph rgw 对象存储 对象 生命周期 设置 -- lifecycle

阻止使用静态生命周期创建对象

S3 存储桶中文件的生命周期规则

如何在共享库的生命周期中存储数据