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
);
}