Events PlayFramework 1.2.x的事件总线实现
随着Play1.2.x项目的发展,我发现自己在这里添加了一些东西 在做某些事情(持久化对象等)时,我的代码会变得非常混乱。 我认为处理此类用例的最佳方法是使用Eventbus。。但是哪一个呢? 有Events PlayFramework 1.2.x的事件总线实现,events,event-handling,playframework,persistence,publish-subscribe,Events,Event Handling,Playframework,Persistence,Publish Subscribe,随着Play1.2.x项目的发展,我发现自己在这里添加了一些东西 在做某些事情(持久化对象等)时,我的代码会变得非常混乱。 我认为处理此类用例的最佳方法是使用Eventbus。。但是哪一个呢? 有 谷歌番石榴的那个 也许还有更多 我已经看到Play 2.x能够使用akka 2.0事件总线。。。但是由于scala插件仍然使用旧的sbt/scala版本,我无法在Play1.2.x中使用Akka 2 我很乐意阅读您在游戏项目中使用的消息总线。 还请解释您的解决方案如何处理持久性操作,例如如何从侦
- 谷歌番石榴的那个
DominikAkka事件总线只包含在一个文件中,您可以随时按源添加它(当然保留标题):您还在考虑将Akka与Play 1.2集成吗?我刚刚完成了与Play 1.2.5的集成。我查看了AKKA的模块,但它已经过时了,所以我决定自己集成AKKA 一切都很简单,以下是一些基本步骤:
- 在dependencies.yml文件中,包括以下行
com.typesafe.akka->akka-actor_2.10 2.1.0//这是撰写本文时的最新版本
- 从命令行播放deps执行,将相关库下载到lib文件夹中
- 执行一些IDE操作以获取库依赖项 在conf目录中设置一个reference.conf文件(这将包含启动时akka的配置信息)-查看:
- 将
添加到您的VM选项中“-Dconfig.file=reference.conf”
- 在AkkaSystem中有一个AppContext或类似于load的静态类-这只是为了让您创建一次,并且可以从任何地方引用
- 在AKKA系统中加载:
Config config = ConfigFactory.load(); public static final notificationSystem = ActorSystem.create("notification", config);
@Override
public void onReceive(Object o) throws Exception {
if (o instanceof SomeMessageType) { // create your own serializable class to transfer message data
SomeMessageType message = (SomeMessageType) o;
JPAPlugin.startTx(true); // true is to start this as a readonly transaction
// Do all the JPA goodness
JPAPlugin.closeTx(false); // false is for rollback - I use this because I am doing a readonly transaction
} else {
unhandled(o);
}
}
希望这有帮助。我花了好几个小时试着让一切都运转起来。我现在能够组织我的异步任务,而不仅仅是为了工作而工作。谢谢!我现在不是在玩一个游戏项目,但会考虑下一个!再次感谢!当你考虑下一个项目的时候,看看我已经创建了一个骨架项目。