import { HelpText } from './HelpText'; import { EnvOverrideWarning, FieldLabel, FieldInput } from './formUtils'; import type { SectionFormProps } from './types'; /** * Execution — concurrency, max_movements, and job retry settings. * * Step 3 carve-out from the old "Workspace" form. The path/storage half * of Workspace lives in PathsStorageForm. Field paths are unchanged so * the underlying config keys keep working without a migration. */ export function ExecutionForm({ config, onChange, overriddenByEnv }: SectionFormProps) { return (

Execution

同時実行数、1 ジョブあたりの movement 上限、ジョブ失敗時のリトライ設定。
Concurrency onChange('concurrency', v ? Number(v) : undefined)} disabled={!!overriddenByEnv['concurrency']} disabledReason="CONCURRENCY 環境変数で上書き中" /> {overriddenByEnv['concurrency'] && } 同時実行可能なジョブ数
Max Movements onChange('maxMovements', v ? Number(v) : undefined)} /> 1ジョブあたりの最大 movement 数

Retry

Max Attempts onChange('retry.maxAttempts', Number(v))} /> ジョブ失敗時の最大リトライ回数。デフォルト: 3
Backoff Seconds onChange( 'retry.backoffSeconds', v.split(',').map((s: string) => Number(s.trim())).filter((n: number) => !isNaN(n)), ) } /> リトライ間隔(秒)。カンマ区切り。デフォルト: 60, 300, 900
); }