首页 帮助中心 场景构建 Scenarios 场景(scenario)执行、周期(cycle)和阶段(phase)

场景(scenario)执行、周期(cycle)和阶段(phase)

Make 是一个事务性系统,类似于 关系型数据库,其中场景(scenario)内的所有操作都作为受控过程的一部分执行。 每个场景(scenario)执行都会经历以下阶段(phase): * 初始化(Initialization)

* 一个或多个周期(cycle)

* 终结(Finalization)

初始化(Initialization)阶段(phase)

初始化(initialization)阶段(phase)期间,所有必要的连接都会建立并验证。Make 还会检查每个模块(module)是否可以执行其预期操作。

周期(Cycle)

初始化(initialization)阶段(phase)之后是至少一个周期(cycle),其中包括: * 操作(Operation)阶段(phase)(读取或写入)

* 提交/回滚(Commit/Rollback)阶段(phase)(最终确定或丢弃更改)。

每个周期(cycle)代表一个不可分割的工作单元,由一系列操作组成。 可以在 场景(scenario)设置 中设置最大周期(cycle)数。默认数量为 1。

操作(Operation)阶段(phase)

操作(operation)阶段(phase)期间,Make 执行读取和写入操作。 * 读取(Reading)操作包括从服务获取数据,然后根据预定义的场景(scenario)由其他模块进行处理。例如,Dropbox > Watch files 模块返回自上次场景(scenario)执行以来创建的新数据包(bundle)(文件)。

* 写入(Writing)操作包括将数据发送到给定服务以进行进一步处理。例如,Dropbox > Upload a file 模块将文件上传到 Dropbox 文件夹。

提交(Commit)和回滚(Rollback)阶段(phase)

操作(operation)阶段(phase)之后,Make 会提交或回滚操作: * 如果所有模块(module)的操作均成功,则开始提交(commit)阶段(phase)。在此阶段,模块执行的所有操作都会被提交。Make 向操作阶段涉及的所有服务发送成功信息。

* 如果在任何模块的操作或提交阶段发生错误,该阶段将中止并启动回滚(rollback)阶段(phase),使给定周期内的所有操作无效。

并非所有模块都允许回滚。支持回滚的模块标有 ACID 标签。没有此标签的模块不支持回滚,如果在其他模块中出现错误,无法还原到初始状态。 在回滚的上下文中,当在一次运行中处理来自触发器的多个数据包(bundle)时,设置最大周期(cycle)数特别有用。 例如,考虑以下场景(scenario): * 你使用轮询触发器(polling trigger)检查新数据。

* 你不需要场景(scenario)每分钟运行一次,因此将其计划为每小时运行一次。

* 一次执行中有多个数据包(bundle)需要处理。

在这种情况下,你有两个选项: 1. 提高模块(module)设置中的触发器限制:提高触发器每个周期(cycle)检索的最大结果数(例如,从 2 提高到 10)。场景(scenario)仍将使用单个周期,但一次性处理更多数据。

2. 提高场景(scenario)设置中的最大周期(cycle)数:保持触发器限制较低(例如 1),但配置场景(scenario)在多个周期中运行(例如,从 1 到 10)。

例如,如果在处理第 10 个数据包(bundle)时发生错误: * 使用第一个选项(单个周期,更高的触发器限制),整个周期将被回滚。所有已处理的数据包都不会保存,所有内容都必须在下一次运行中重新处理。

* 使用第二个选项(多个周期,较低的触发器限制),只有最后一个周期会被回滚。

学以致用,立即上手

读完文档后,不如亲自动手 — 免费注册 Make.com 账户,跟着教程搭建你的第一个工作流

✓ 永久免费版 ✓ 无需信用卡 ✓ 60 秒注册
🚀 免费注册 Make 账户