Skip to content

n8n 中的循环

当您需要处理多个项目或重复执行某个操作(例如向通讯录中的每个联系人发送消息)时,循环非常有用。n8n 会自动处理此类重复操作,这意味着您无需在工作流程中专门构建循环。但在某些节点上,情况并非如此。

在 n8n 中使用循环

n8n 节点接收任意数量的项目作为输入,处理这些项目并输出结果。您可以将每个项目视为单个数据点,或节点输出表中的一行。

客户数据存储节点输出

节点通常针对每个项目运行一次。例如,如果您想将“客户数据存储”节点中客户的姓名和备注作为消息发送到 Slack,您需要:

  1. 将 Slack 节点连接到客户数据存储节点。
  2. 配置参数。
  3. 执行节点。

您将收到五条消息:每件商品一条。

这样您就可以处理多个项目而无需在循环中明确连接节点。

执行一次节点

如果您不希望节点处理所有收到的项目,例如仅向第一个客户发送 Slack 消息,您可以通过切换该节点的“设置”选项卡中的“执行一次”参数来实现。当传入数据包含多个项目并且您只想处理第一个项目时,此设置很有用。

创建循环

n8n 通常会处理所有传入项的迭代。但是,在某些情况下,您需要创建循环来迭代所有项。请参阅节点异常,了解不会自动迭代所有传入项的节点列表。

循环直到满足条件

要在 n8n 工作流中创建循环,请将一个节点的输出连接到前一个节点的输入。添加一个IF节点来检查何时停止循环。

以下是使用节点实现循环的示例工作流

示例工作流程的编辑器 UI 视图

循环直到处理完所有项目

如果您想循环处理所有项目,请使用“循环处理项目”节点。要单独处理每个项目,请将“批量大小”设置为。

您可以按组对数据进行批处理,并处理这些批次。这种方法有助于在处理大量传入数据或需要处理特定一组返回项时避免 API 速率限制。

在所有传入项目分成批次并传递到工作流中的下一个节点后,“循环项目”节点将停止执行,因此无需添加 IF 节点来停止循环。

节点异常

需要在工作流程中设计循环的节点和操作:

  • CrateDB针对和执行一次。
  • 对所有项目运行一次模式下的代码节点:根据输入的代码片段处理所有项目。
  • 对所有项目运行一次模式下执行工作流节点。
  • HTTP 请求:您必须自行处理分页。如果您的 API 调用返回分页结果,则必须创建一个循环来一次获取一页。
  • Microsoft SQL对、和执行一次。
  • MongoDB针对和执行一次。
  • QuestDB为 执行一次。
  • Redis
    • 信息:此操作仅执行一次,无论传入数据中的项目数有多少。
  • RSS Read针对请求的 URL 执行一次。
  • TimescaleDB针对和执行一次。