Skip to navigation

Start next round

Overview

Turns a linear flow into a repeating cycle without drawing a cycle on the canvas. Placed last in a chain, it waits for the configured pause and then starts the flow again from its Run flow node — as a new run, exactly as a person pressing Run would produce, not another pass through the run that is already in progress.

Reach for it when each round must begin only after the previous one has finished: active learning rounds where every round trains a model, a nightly retrain that takes an unpredictable amount of time, a scheduled import whose duration varies with the batch.

starts a new run Run flow Random sample Train DEIM Evaluate object detection Start next round

How it works

1

Reads how many rounds it has already started, kept across its own previous runs, and stops the flow instead of looping once Stop after rounds is reached.

2

Resolves the node to start — the one named in Start node, or the flow’s single Run flow node — before the pause, so a wrong name fails immediately rather than at the end of a long wait.

3

Publishes Next round at as a badge, then waits for Wait before next round.

4

Runs the target node, which starts a fresh run of the flow, and records the round in Rounds started.

Inputs

Wait before next round (minutes)
integerDefaults to 5Required

How long to pause before starting the next round. The node holds its container open for the whole pause, so keep it to the gap you actually want between rounds. Minimum: 0. Maximum: 720. Step: 1. Key: DELAY_MINUTES.

Stop after rounds
integer

Stop looping once this many rounds have been started from here. Leave empty to keep going until something upstream stops the flow. Minimum: 1. Maximum: 500. Step: 1. Key: MAX_ROUNDS.

Start node
string

Name of the node to start the next round from. Leave empty when the flow has exactly one Run flow node - it is found automatically. Key: TARGET_NODE.

Outputs

Rounds started
number

How many next rounds this node has started, counting the one it just started. Shown on the node as a badge. Key: ROUNDS_STARTED.

Next round at
string

When the next round is due to start, set before the pause begins. Shown on the node as a badge. Key: NEXT_ROUND_AT.

JSON config

Machine-readable node interface for automation and advanced usage.

{
"name": "Start next round",
"description": "Wait, then start this flow again from its Run flow node as a brand new run. Place it last in a repeating cycle - active learning rounds, a nightly retrain - so each round begins only after the previous one has finished, which a run schedule cannot express.",
"category": "Flow control",
"namespace": "ovalbee",
"templateKey": "flow_control/start_next_round",
"version": "v1",
"inputs": [
{
"key": "DELAY_MINUTES",
"label": "Wait before next round (minutes)",
"type": "number",
"description": "How long to pause before starting the next round. The node holds its container open for the whole pause, so keep it to the gap you actually want between rounds.",
"required": true,
"default": 5,
"visibleWhen": null,
"options": {
"type": "integer",
"min": 0,
"max": 720,
"step": 1,
"slider": false
}
},
{
"key": "MAX_ROUNDS",
"label": "Stop after rounds",
"type": "number",
"description": "Stop looping once this many rounds have been started from here. Leave empty to keep going until something upstream stops the flow.",
"required": false,
"default": null,
"visibleWhen": null,
"options": {
"type": "integer",
"min": 1,
"max": 500,
"step": 1,
"slider": false
}
},
{
"key": "TARGET_NODE",
"label": "Start node",
"type": "string",
"description": "Name of the node to start the next round from. Leave empty when the flow has exactly one Run flow node - it is found automatically.",
"required": false,
"default": null,
"visibleWhen": null
}
],
"outputs": [
{
"key": "ROUNDS_STARTED",
"label": "Rounds started",
"type": "number",
"description": "How many next rounds this node has started, counting the one it just started.",
"artifact": false,
"badge": true,
"badgeOpens": null,
"hidden": false
},
{
"key": "NEXT_ROUND_AT",
"label": "Next round at",
"type": "string",
"description": "When the next round is due to start, set before the pause begins.",
"artifact": false,
"badge": true,
"badgeOpens": null,
"hidden": false
}
]
}