有没有办法通过 REST API 以编程方式暂停和恢复工作流程?例如,我希望能够从应用程序提交个人休假请求,该应用程序创建并触发工作流。工作流向经理发送批准通知,工作流执行在等待经理批准时暂停。经理批准请求后,它会调用工作流 API 以恢复工作流的执行。
从文档中,有一个选项可以让工作流进入睡眠状态,我可以使用它来定期检查请求的状态,但这会产生额外的成本,因为不知道经理何时会批准请求。
有没有办法通过 REST API 以编程方式暂停和恢复工作流程?例如,我希望能够从应用程序提交个人休假请求,该应用程序创建并触发工作流。工作流向经理发送批准通知,工作流执行在等待经理批准时暂停。经理批准请求后,它会调用工作流 API 以恢复工作流的执行。
从文档中,有一个选项可以让工作流进入睡眠状态,我可以使用它来定期检查请求的状态,但这会产生额外的成本,因为不知道经理何时会批准请求。
不确定您的用例,但我想您只能在经理批准后选择执行工作流程。
如您所知,有两个部分,第一部分创建工作流。例如,在https://cloud.google.com/workflows/docs/reference/rest/v1beta/projects.locations.workflows/create api 中。或者您可以查看https://cloud.google.com/workflows/docs/creating-updating-workflow。
这不会执行它只是创建它的工作流程。所以它可以在稍后阶段执行。
要执行工作流,有这个 Api https://cloud.google.com/workflows/docs/reference/executions/rest/v1beta/projects.locations.workflows.executions/create 或参见https://cloud.google。 com/workflows/docs/executing-workflow
此外,在执行工作流时,您可以根据需要传入参数。
然后,如果我从https://cloud.google.com/workflows#section-9正确理解了定价,他们似乎只向您收取每一步执行的费用。
抱歉,我已经阅读了相当多的这些文档,但没有看到“使工作流程进入睡眠状态的选项”,您能否链接这些文档?
我们在这里讨论两个独立的工作流程。没有理由暂停或不暂停工程。
2021 年 10 月 5 日更新:
现在支持等待 HTTP 回调:
- create_callback:
call: events.create_callback_endpoint
args:
http_callback_method: POST # can be GET, PUT, ...
result: callback_details
# Send the callback URL somewhere for another service to call
- await_callback:
call: events.await_callback
args:
callback: ${callback_details}
timeout: 1800 # optional, in seconds
result: callback_request
原始回复
计划在工作流执行期间等待 HTTP webhook 回调的能力。(我是工作流 PM。)
在那之前,最好的解决方案是使用sleep
.