Skip to content

Commit 945b876

Browse files
committed
feat: add time varying timeout
1 parent 6de5eb2 commit 945b876

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

β€Žscrapegraph-py/scrapegraph_py/async_client.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,14 +101,18 @@ def __init__(
101101

102102
async def _make_request(self, method: str, url: str, **kwargs) -> Any:
103103
"""Make HTTP request with retry logic."""
104+
batch_size = len(kwargs.get('json', {}).get('urls', [1])) if kwargs.get('json') else 1
105+
timeout = ClientTimeout(total=self.timeout.total * batch_size)
106+
104107
for attempt in range(self.max_retries):
105108
try:
106109
logger.info(
107110
f"πŸš€ Making {method} request to {url} (Attempt {attempt + 1}/{self.max_retries})"
108111
)
109112
logger.debug(f"πŸ” Request parameters: {kwargs}")
110113

111-
async with self.session.request(method, url, **kwargs) as response:
114+
# Use the calculated timeout for this request
115+
async with self.session.request(method, url, timeout=timeout, **kwargs) as response:
112116
logger.debug(f"πŸ“₯ Response status: {response.status}")
113117
result = await handle_async_response(response)
114118
logger.info(f"βœ… Request completed successfully: {method} {url}")

β€Žscrapegraph-py/scrapegraph_py/client.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,16 @@ def __init__(
115115
logger.info("βœ… Client initialized successfully")
116116

117117
def _make_request(self, method: str, url: str, **kwargs) -> Any:
118-
"""Make HTTP request with error handling."""
118+
"""Make HTTP request with retry logic."""
119+
# Calculate timeout based on batch size if present in kwargs
120+
batch_size = len(kwargs.get('json', {}).get('urls', [1])) if kwargs.get('json') else 1
121+
timeout = self.timeout * batch_size
122+
119123
try:
120124
logger.info(f"πŸš€ Making {method} request to {url}")
121125
logger.debug(f"πŸ” Request parameters: {kwargs}")
122126

123-
response = self.session.request(method, url, timeout=self.timeout, **kwargs)
124-
logger.debug(f"πŸ“₯ Response status: {response.status_code}")
125-
127+
response = self.session.request(method, url, timeout=timeout, **kwargs)
126128
result = handle_sync_response(response)
127129
logger.info(f"βœ… Request completed successfully: {method} {url}")
128130
return result

0 commit comments

Comments
Β (0)