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(
     {

Reply via email to