2

有没有办法通过 REST API 以编程方式暂停和恢复工作流程?例如,我希望能够从应用程序提交个人休假请求,该应用程序创建并触发工作流。工作流向经理发送批准通知,工作流执行在等待经理批准时暂停。经理批准请求后,它会调用工作流 API 以恢复工作流的执行。

从文档中,有一个选项可以让工作流进入睡眠状态,我可以使用它来定期检查请求的状态,但这会产生额外的成本,因为不知道经理何时会批准请求。

https://cloud.google.com/workflows/docs/reference/syntax

4

3 回答 3

1

不确定您的用例,但我想您只能在经理批准后选择执行工作流程。

如您所知,有两个部分,第一部分创建工作流。例如,在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正确理解了定价,他们似乎只向您收取每一步执行的费用。

抱歉,我已经阅读了相当多的这些文档,但没有看到“使工作流程进入睡眠状态的选项”,您能否链接这些文档?

于 2020-10-22T11:42:07.647 回答
1

我们在这里讨论两个独立的工作流程。没有理由暂停或不暂停工程。

  1. 启动并上升,直到您触发批准流程。
  2. 批准后,触发执行其余步骤的新工作流。
于 2020-10-23T20:10:02.147 回答
1

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.

于 2020-12-02T19:59:30.613 回答