From ab858debc9700813f2ead29555d7ed1e1b0dcd1f Mon Sep 17 00:00:00 2001 From: Maira Salazar Date: Tue, 1 Sep 2026 11:59:12 +0200 Subject: [PATCH] feat(funding): add retry policy --- app/activities/check_funding_relevance.py | 10 ++++++++++ app/workflows/check_funding_relevance_workflow.py | 2 ++ 2 files changed, 12 insertions(+) diff --git a/app/activities/check_funding_relevance.py b/app/activities/check_funding_relevance.py index 5c634b9..c71cc93 100644 --- a/app/activities/check_funding_relevance.py +++ b/app/activities/check_funding_relevance.py @@ -3,14 +3,24 @@ """LLM-based funding relevance check activity.""" +from datetime import timedelta + from pydantic import BaseModel, Field from temporalio import activity +from temporalio.common import RetryPolicy from app.agent import build_agent from app.config import get_settings from app.observability import propagate_langfuse_context from app.workflows.specs import WorkflowContext +FUNDING_WORKFLOW_RETRY_POLICY = RetryPolicy( + initial_interval=timedelta(seconds=5), + backoff_coefficient=2, + maximum_interval=timedelta(seconds=20), + maximum_attempts=3, +) + class CheckFundingRelevanceRequest(BaseModel): """Request to check if record metadata matches an award description.""" diff --git a/app/workflows/check_funding_relevance_workflow.py b/app/workflows/check_funding_relevance_workflow.py index 978c28e..43841ad 100644 --- a/app/workflows/check_funding_relevance_workflow.py +++ b/app/workflows/check_funding_relevance_workflow.py @@ -6,6 +6,7 @@ from temporalio import workflow from app.activities.check_funding_relevance import ( + FUNDING_WORKFLOW_RETRY_POLICY, CheckFundingRelevanceRequest, CheckFundingRelevanceResponse, check_funding_relevance, @@ -61,6 +62,7 @@ async def run( context, ], start_to_close_timeout=timedelta(minutes=2), + retry_policy=FUNDING_WORKFLOW_RETRY_POLICY, ) except Exception: await workflow.execute_activity(