"QueryFailedError{Message: workflow must handle at least one decision task before it can be queried}" 尝试 运行 工作流程时

"QueryFailedError{Message: workflow must handle at least one decision task before it can be queried}" when trying to run a workflow

我在尝试启动工作流(并查询它的初始化)时遇到上述错误。我花了一些时间来了解事物的名称 - 在阅读 this 之后,我更清楚什么是真正的决策任务,但我认为我仍然有点迷失在术语中。所以我相信我的案例决策任务需要超过 1 秒的时间(queryFirstDecisionTaskWaitTime)。这个等待时间是否可以以任何方式配置?有没有人遇到过类似的问题?

是的,您应该能够通过设置请求超时来“配置”queryFirstDecisionTaskWaitTime

例如,在 golang 中,这只是将查询请求发送到 Cadence 服务器时的上下文超时。

在 CLI 中测试:

% date ; ~/cadence/cadence --ct 10 --do qlong wf query -w helloworld_b721724d-11f9-4b5b-a158-2bda4a230297 --query_type "__stack_trace" ; date
Thu Oct  8 14:46:47 PDT 2020
Error: Query workflow failed.
Error Details: QueryFailedError{Message: workflow must handle at least one decision task before it can be queried}
('export CADENCE_CLI_SHOW_STACKS=1' to see stack traces)
Thu Oct  8 14:46:56 PDT 2020

注意:--ct 10 表示我们使用 10 秒作为此命令的上下文超时。

defaultQueryFirstDecisionTaskWaitTime 至少为一秒。目前没有办法改变这个最小边界。而且我认为我们不需要它,因为您可以根据每个请求进行配置 :D

顺便说一句,感谢您在 StackOverfolw 中提问,这有助于我们更好地为社区保存知识。

哦,我想通了 - 我的 tasklist 配置不正确。所以这就是工作流程卡在 DecisionTaskScheduled 状态

的原因