Skip to content

Commit dde4b46

Browse files
committed
Without debug
1 parent 134e8be commit dde4b46

File tree

3 files changed

+1
-63
lines changed

3 files changed

+1
-63
lines changed

src/apify/storage_clients/_apify/_request_queue_client.py

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626

2727
logger = getLogger(__name__)
2828

29-
COUNTER = iter(range(10000))
3029

3130
class ApifyRequestQueueClient(RequestQueueClient):
3231
"""An Apify platform implementation of the request queue client."""
@@ -295,25 +294,18 @@ async def fetch_next_request(self) -> Request | None:
295294
Returns:
296295
The request or `None` if there are no more pending requests.
297296
"""
298-
call_time = next(COUNTER)
299297
# Ensure the queue head has requests if available. Fetching the head with lock to prevent race conditions.
300-
logger.debug(f'Before _fetch_lock, {call_time}')
301298
async with self._fetch_lock:
302-
logger.debug(f'Fetching, {call_time}')
303299
await self._ensure_head_is_non_empty()
304300

305301
# If queue head is empty after ensuring, there are no requests
306302
if not self._queue_head:
307-
logger.debug(f'Empty, {call_time}')
308303
return None
309304

310305
# Get the next request ID from the queue head
311306
next_request_id = self._queue_head.popleft()
312-
logger.debug(f'New request, {call_time}')
313307

314-
logger.debug(f'Before hydrate, {call_time}')
315308
request = await self._get_or_hydrate_request(next_request_id)
316-
logger.debug(f'After hydrate, {call_time}')
317309

318310
# Handle potential inconsistency where request might not be in the main table yet
319311
if request is None:
@@ -331,16 +323,6 @@ async def fetch_next_request(self) -> Request | None:
331323
)
332324
return None
333325

334-
# Use get request to ensure we have the full request object.
335-
#request = await self.get_request(request.id) This seems redundant
336-
if request is None:
337-
logger.debug(
338-
'Request fetched from the beginning of queue was not found in the RQ',
339-
extra={'nextRequestId': next_request_id},
340-
)
341-
return None
342-
343-
logger.debug(f'{request.retry_count=}, {call_time}')
344326
return request
345327

346328
@override
@@ -403,16 +385,13 @@ async def reclaim_request(
403385
"""
404386
# Check if the request was marked as handled and clear it. When reclaiming,
405387
# we want to put the request back for processing.
406-
call_time = next(COUNTER)
407388
if request.was_already_handled:
408389
request.handled_at = None
409390

410391
async with self._fetch_lock:
411392
try:
412393
# Update the request in the API.
413-
logger.debug(f'Before _update_request reclaiming, {call_time}')
414394
processed_request = await self._update_request(request, forefront=forefront)
415-
logger.debug(f'After _update_request reclaiming, {call_time}')
416395
processed_request.unique_key = request.unique_key
417396

418397
# If the request was previously handled, decrement our handled count since
@@ -435,9 +414,7 @@ async def reclaim_request(
435414

436415
# Try to release the lock on the request
437416
try:
438-
logger.debug(f'Before _delete_request_lock reclaiming, {call_time}')
439417
await self._delete_request_lock(request.id, forefront=forefront)
440-
logger.debug(f'After _delete_request_lock reclaiming, {call_time}')
441418
except Exception as err:
442419
logger.debug(f'Failed to delete request lock for request {request.id}', exc_info=err)
443420
except Exception as exc:
@@ -453,13 +430,8 @@ async def is_empty(self) -> bool:
453430
Returns:
454431
True if the queue is empty, False otherwise.
455432
"""
456-
call_time = next(COUNTER)
457-
logger.debug(f'Before _list_head is_empty, {call_time}')
458433
async with self._fetch_lock:
459-
logger.debug(f'During _list_head is_empty, {call_time}')
460434
head = await self._list_head(limit=1, lock_time=None)
461-
logger.debug(f'After _list_head is_empty, {call_time}')
462-
logger.debug(f'Finish _list_head is_empty, {call_time}')
463435
return len(head.items) == 0 and not self._queue_has_locked_requests
464436

465437
async def _ensure_head_is_non_empty(self) -> None:
@@ -571,10 +543,7 @@ async def _list_head(
571543
A collection of requests from the beginning of the queue.
572544
"""
573545
# Return from cache if available and we're not checking for new forefront requests
574-
call_time = next(COUNTER)
575546
if self._queue_head and not self._should_check_for_forefront_requests:
576-
logger.debug(f'Using cached queue head with {len(self._queue_head)} requests, {call_time}')
577-
578547
# Create a list of requests from the cached queue head
579548
items = []
580549
for request_id in list(self._queue_head)[:limit]:
@@ -592,7 +561,6 @@ async def _list_head(
592561
queue_has_locked_requests=self._queue_has_locked_requests,
593562
lock_time=lock_time,
594563
)
595-
logger.debug(f'Updating cached queue head with {len(self._queue_head)} requests, {call_time}')
596564
leftover_buffer = list[str]()
597565
if self._should_check_for_forefront_requests:
598566
leftover_buffer = list(self._queue_head)
@@ -636,14 +604,11 @@ async def _list_head(
636604
),
637605
hydrated_request=request,
638606
)
639-
logger.debug(f'Adding to head, {call_time}')
640607
self._queue_head.append(request.id)
641-
logger.debug(f'Cached queue head with {len(self._queue_head)} requests, {call_time}')
642608

643609
for leftover_request_id in leftover_buffer:
644610
# After adding new requests to the forefront, any existing leftover locked request is kept in the end.
645611
self._queue_head.append(leftover_request_id)
646-
logger.debug(f'Cached queue head with {len(self._queue_head)} requests, {call_time}')
647612
return RequestQueueHead.model_validate(response)
648613

649614
async def _prolong_request_lock(

tests/integration/test_actor_request_queue.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -113,25 +113,3 @@ async def test_request_queue_is_finished(
113113
assert await request_queue.is_finished()
114114
finally:
115115
await request_queue.drop()
116-
117-
118-
async def test_same_request_fetched_twice(
119-
apify_client_async: ApifyClientAsync,
120-
monkeypatch: pytest.MonkeyPatch):
121-
"""Test that the same request can be fetched twice from the request queue."""
122-
monkeypatch.setenv(ApifyEnvVars.TOKEN, apify_client_async.token)
123-
124-
request_queue_name = generate_unique_resource_name('request_queue')
125-
async with Actor:
126-
try:
127-
request_queue = await Actor.open_request_queue(name='same-request-fetch', force_cloud=request_queue_name)
128-
129-
request = Request.from_url('http://example.com')
130-
await request_queue.add_request(request)
131-
132-
fetched_request_1 = await request_queue.fetch_next_request()
133-
assert fetched_request_1 is not None
134-
assert fetched_request_1.url == 'http://example.com'
135-
await request_queue.reclaim_request(fetched_request_1)
136-
finally:
137-
await request_queue.drop()

tests/integration/test_crawlers_with_storages.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
from typing import TYPE_CHECKING
44

5-
import pytest
6-
75
if TYPE_CHECKING:
86
from .conftest import MakeActorFunction, RunActorFunction
97

@@ -78,23 +76,20 @@ async def default_handler(context: ParselCrawlingContext) -> None:
7876
assert run_result.status == 'SUCCEEDED'
7977

8078

81-
@pytest.mark.parametrize('_', range(10))
82-
async def test_actor_on_platform_max_request_retries(_,
79+
async def test_actor_on_platform_max_request_retries(
8380
make_actor: MakeActorFunction,
8481
run_actor: RunActorFunction,
8582
) -> None:
8683
"""Test that the actor respects max_request_retries."""
8784

8885
async def main() -> None:
8986
"""The crawler entry point."""
90-
import logging
9187

9288
from crawlee.crawlers import BasicCrawlingContext, ParselCrawler, ParselCrawlingContext
9389

9490
from apify import Actor
9591

9692
async with Actor:
97-
logging.getLogger('apify.storage_clients._apify._request_queue_client').setLevel(logging.DEBUG)
9893
max_retries = 3
9994
crawler = ParselCrawler(max_request_retries=max_retries)
10095
failed_counter = 0

0 commit comments

Comments
 (0)