我需要在Gentics网格应用程序中创建共享日历。
这就是我一直在研究的方法-
创建一个名为“events”的容器节点。这将代表“日历”。
为“事件”创建架构,并将此节点类型的实例添加到“events”文件夹中。
事件模式将包含名称、日期/时间、位置等.
一个名为temporalExpression
的字符串字段可以描述递归。
然后,我可以查询所有事件并对它们进行迭代以确定状态,如- isOccuring
或nextOccurance
。
这个方法的问题是,所有的逻辑都在客户端上。
这似乎很笨拙,而且容易出错。
我正在考虑构建一个代理/中间件层,将所有图形查询转发到Mesh服务器,然后提供一个额外的rest服务来处理创建/查询事件。这将提供一个抽象层来处理复杂性。
这种做法听起来合理吗?
我也考虑过使用Google,但我不希望Mesh失去事件的可见性。
如果我连接到网格eventBus,也许这会解决它?然后中间件可以订阅节点事件并相应地更新Google日历。
我对这种方法的关注-- Mesh如何处理事件的使用者?
如果我扩展我的中间件,它们中的每一个都会收到事件吗?我需要小心复制。
我知道Mesh有插件功能,但我认为它通过与中间件层相同的http进行通信,所以我对复制也有同样的担忧。
有什么想法?
发布于 2019-09-04 08:36:28
这听起来像是网格插件的一个很好的用例。通过插件API,您可以访问Mesh使用的Vert.x实例。这样,您就可以访问事件总线,并使用localConsumer只在触发事件的网格实例上使用该事件。由于事件仅在最初创建日历条目的实例上触发,因此只有一个使用者将接收该事件。这避免了重复,即使您扩展了应用程序。
您可以通过MeshEvent枚举获取网格事件的地址。
插件API还允许您添加自定义端点。您可以很容易地添加端点来查询您提到的数据- isOccuring
或nextOccurance
。
https://stackoverflow.com/questions/57779787
复制相似问题