Skip to content

Commit febc6eb

Browse files
committed
Update agents_acp_use_case.py
1 parent 77380ca commit febc6eb

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

agentex/src/domain/use_cases/agents_acp_use_case.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import asyncio
22
import json
3+
import random
34
from collections.abc import AsyncIterator, Callable
45
from typing import Annotated, Any
56

@@ -231,21 +232,20 @@ async def _execute_with_error_handling(
231232
await self.task_service.fail_task(task, str(e))
232233
raise e
233234

234-
async def grant_with_retry(self, task: TaskEntity, max_retries: int = 3) -> None:
235+
async def grant_with_retry(self, task: TaskEntity, attempts: int = 0) -> None:
235236
"""Grant authorization for a task with retry"""
236237
try:
237238
await self.authorization_service.grant(
238239
resource=AgentexResource.task(task.id),
239240
)
240241
except AuthenticationServiceUnavailableError as e:
241-
logger.error(f"Authentication service unavailable: {e}")
242-
if max_retries > 0:
243-
delay = 0.2 * (2 ** (max_retries - 1))
242+
if attempts < 3:
243+
delay = 0.2 * (2**attempts) + random.uniform(0, 0.1)
244244
logger.error(
245245
f"Authentication service unavailable: {e}. Retrying in {delay}s..."
246246
)
247247
await asyncio.sleep(delay)
248-
return await self.grant_with_retry(task, max_retries - 1)
248+
return await self.grant_with_retry(task, attempts + 1)
249249
else:
250250
logger.error(
251251
f"Authentication service unavailable: {e}. Max retries reached."

0 commit comments

Comments
 (0)