MarkLogic - 使用触发器的替代方法

MarkLogic - Alternatives to using triggers

MarkLogic 版本:9.0-6.2

我们有一个客户集合和一个实时更新每个客户文档的 PUT/POST API。

根据需要,当一个客户phone号更新时,我们有时需要更新其他相关客户的文件。为了 PUT/POST API 的更好响应时间,我们希望更新进行更改的文档并 return 对调用者的成功响应,然后更新所有其他受影响的文档客户文件。我们的第一个想法是使用触发器,但来自 relational/RDBMS 的背景,我们正在寻找任何更好的替代方案来实现同样的目标。除了使用触发器还有其他选择吗?

提前致谢!

如果您有处理 PUT/POST 的自定义代码,或者如果您能够对其进行修饰(例如,如果您使用的是内置 REST-api,则使用 REST 转换),您可能 extend/decorate 处理以包括任何其他需要完成的事情。

触发器是解决此问题的好方法。它们基本上有两种口味:

  • 预提交
  • post-提交

预提交导致请求等待触发代码完全完成。

post-commit 导致触发代码在任务服务器队列中产生,因此可能需要更多时间才能完成,并且不会导致调用者延迟。

有两个构建在触发器之上的框架:

根据需要完成的工作量或工作种类,您可能会对这些内容感兴趣。 CPF 非常擅长以非常稳健但缓慢的方式执行许多处理步骤。

Alerting 结合了MarkLogic 的反向查询功能来决定是否应该应用以及应该应用哪些警报规则(可以附加到哪些操作代码)。例如,如果您想监视特定关键字的传入消息,这非常有用。

HTH!