This is an automated email from the ASF dual-hosted git repository.
pierrejeambrun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new 05eda5643d3 perf: optimize grid view refresh pressure on the API
(#62085)
05eda5643d3 is described below
commit 05eda5643d3df9d742e531c6bd5516fd80f38d27
Author: Vic Wen <[email protected]>
AuthorDate: Thu Feb 19 00:25:17 2026 +0800
perf: optimize grid view refresh pressure on the API (#62085)
---
.../airflow/ui/src/layouts/Details/Grid/TaskInstancesColumn.tsx | 9 +++++++--
airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts | 9 ++++++++-
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git
a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/TaskInstancesColumn.tsx
b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/TaskInstancesColumn.tsx
index 4b05e40032a..dcbf7cc2120 100644
---
a/airflow-core/src/airflow/ui/src/layouts/Details/Grid/TaskInstancesColumn.tsx
+++
b/airflow-core/src/airflow/ui/src/layouts/Details/Grid/TaskInstancesColumn.tsx
@@ -39,7 +39,13 @@ const ROW_HEIGHT = 20;
export const TaskInstancesColumn = ({ nodes, onCellClick, run, virtualItems }:
Props) => {
const { dagId = "", runId } = useParams();
- const { data: gridTISummaries } = useGridTiSummaries({ dagId, runId:
run.run_id, state: run.state });
+ const isSelected = runId === run.run_id;
+ const { data: gridTISummaries } = useGridTiSummaries({
+ dagId,
+ isSelected,
+ runId: run.run_id,
+ state: run.state,
+ });
const { hoveredRunId, setHoveredRunId } = useHover();
const itemsToRender =
@@ -52,7 +58,6 @@ export const TaskInstancesColumn = ({ nodes, onCellClick,
run, virtualItems }: P
taskInstanceMap.set(ti.task_id, ti);
}
- const isSelected = runId === run.run_id;
const isHovered = hoveredRunId === run.run_id;
const handleMouseEnter = () => setHoveredRunId(run.run_id);
diff --git a/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
b/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
index 51f07ce99e5..6b75402ab6c 100644
--- a/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
+++ b/airflow-core/src/airflow/ui/src/queries/useGridTISummaries.ts
@@ -23,15 +23,22 @@ import { isStatePending, useAutoRefresh } from "src/utils";
export const useGridTiSummaries = ({
dagId,
enabled,
+ isSelected,
runId,
state,
}: {
dagId: string;
enabled?: boolean;
+ isSelected?: boolean;
runId: string;
state?: TaskInstanceState | null | undefined;
}) => {
- const refetchInterval = useAutoRefresh({ dagId });
+ const baseRefetchInterval = useAutoRefresh({ dagId });
+ const slowRefreshMultiplier = 5;
+ const refetchInterval =
+ typeof baseRefetchInterval === "number"
+ ? baseRefetchInterval * (isSelected ? 1 : slowRefreshMultiplier)
+ : baseRefetchInterval;
const { data: gridTiSummaries, ...rest } = useGridServiceGetGridTiSummaries(
{