This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch v3-1-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-1-test by this push:
new 8365cb789cc [v3-1-test] perf: optimize grid view refresh pressure on
the API (#62085) (#62135)
8365cb789cc is described below
commit 8365cb789cc1e2b09644bf057bd791aa701101a0
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Wed Feb 18 21:33:36 2026 +0100
[v3-1-test] perf: optimize grid view refresh pressure on the API (#62085)
(#62135)
(cherry picked from commit 05eda5643d3df9d742e531c6bd5516fd80f38d27)
Co-authored-by: Vic Wen <[email protected]>
---
.../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 399fbca583a..b69ba7541ee 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
@@ -40,7 +40,13 @@ const ROW_HEIGHT = 20;
const TaskInstancesColumnInner = ({ 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 =
@@ -57,7 +63,6 @@ const TaskInstancesColumnInner = ({ nodes, onCellClick, run,
virtualItems }: Pro
return map;
}, [gridTISummaries?.task_instances]);
- const isSelected = runId === run.run_id;
const isHovered = hoveredRunId === run.run_id;
const handleMouseEnter = useCallback(() => setHoveredRunId(run.run_id),
[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(
{