同步查询

Workflow 代码具有状态, Temporal 框架可在各种软件和硬件故障中保留这些状态。在 Workflow 执行过程中,状态不断变更。如果要将这种内部状态暴露给外部世界,可以使用 Temporal 提供的同步查询功能。从 Workflow 实现者的角度来看,查询功能是被暴露给外部实体调用的同步回调。每个 Workflow 类型可以提供多个此类回调,将不同的信息暴露给不同的外部系统。
要执行查询,外部客户端会调用同步的 Temporal API,提供 namespace名称空间、 WorkflowId、query 内容和可选的 查询参数
查询回调必须是只读的,不能以任何方式改变 Workflow 状态。另一个限制是,查询回调不能包含任何可能阻塞的代码。上述两项限制都排除了从查询 handlers 调用 Activities 的能力。
Temporal 团队目前正在实施更新功能,该功能与查询的调用方式类似,但会支持 Workflow 状态改变和本地 Activities 调用。

堆栈跟踪查询

Temporal 客户端库会开箱即用地暴露一些预先定义的查询。目前唯一支持的内置查询是 stack_trace。此查询返回所有 Workflow 自有线程的堆栈。这是排除生产中任何 Workflow 故障的好方法。