0

我需要在 Gentics Mesh 应用程序中创建共享日历。
这是我一直在研究的方法 -

创建一个名为“事件”的容器节点。这将代表“日历”。
为“事件”创建一个模式,并将此节点类型的实例添加到事件文件夹。
事件模式将包含名称、日期/时间、位置等……
一个名为 String 的字段temporalExpression可以描述重复。
然后我可以查询所有事件并遍历它们以确定状态,例如 -isOccuringnextOccurance

这种方法的问题是所有逻辑都存在于客户端上。
它似乎笨拙且容易出错。

我正在考虑构建一个代理/中间件层,将所有图形查询转发到 Mesh 服务器,然后提供额外的休息服务来处理创建/查询事件。这将提供一个抽象层来处理复杂性。

这种方法听起来合理吗?

我也考虑过使用 Google Calendar API,但我不希望 Mesh 失去对事件的可见性。
如果我连接到 Mesh eventBus,也许可以解决它?然后中间件可以订阅节点事件并相应地更新谷歌日历。
我对这种方法的关注 - Mesh 如何处理事件的消费者?
如果我扩大我的中间件,他们每个人都会收到事件吗?我需要小心重复。

我知道 Mesh 有插件功能,但我认为它通过与中间件层相同的 [http] API 进行通信,所以我对重复也有同样的担忧。

想法?

4

1 回答 1

1

这听起来像是 Mesh Plugin 的一个很好的用例。通过插件 API,您可以访问 Mesh 使用的 Vert.x 实例。有了它,您可以访问 Eventbus 并使用localConsumer仅在触发事件的 Mesh 实例上使用事件。由于该事件仅在最初创建日历条目的实例上触发,因此只有一个消费者会收到该事件。即使您扩大应用程序,这也可以避免重复。

您可以通过MeshEvent枚举获取 Mesh 事件的地址。

插件 API 还允许您添加自定义端点。您可以轻松添加端点来查询您提到的数据 -isOccuringnextOccurance.

于 2019-09-04T08:36:28.033 回答