diff --git a/src/apify_client/clients/base/actor_job_base_client.py b/src/apify_client/clients/base/actor_job_base_client.py index abf7e274..b8d3d0ac 100644 --- a/src/apify_client/clients/base/actor_job_base_client.py +++ b/src/apify_client/clients/base/actor_job_base_client.py @@ -39,7 +39,6 @@ def _wait_for_finish(self, wait_secs: int | None = None) -> dict | None: ) job = parse_date_fields(pluck_data(response.json())) - seconds_elapsed = math.floor((datetime.now(timezone.utc) - started_at).total_seconds()) if ActorJobStatus(job['status']).is_terminal or ( wait_secs is not None and seconds_elapsed >= wait_secs ): @@ -57,6 +56,9 @@ def _wait_for_finish(self, wait_secs: int | None = None) -> dict | None: if seconds_elapsed > DEFAULT_WAIT_WHEN_JOB_NOT_EXIST_SEC: return None + finally: + seconds_elapsed = math.floor((datetime.now(timezone.utc) - started_at).total_seconds()) + # It might take some time for database replicas to get up-to-date so sleep a bit before retrying time.sleep(0.25) @@ -93,7 +95,6 @@ async def _wait_for_finish(self, wait_secs: int | None = None) -> dict | None: ) job = parse_date_fields(pluck_data(response.json())) - seconds_elapsed = math.floor((datetime.now(timezone.utc) - started_at).total_seconds()) if ActorJobStatus(job['status']).is_terminal or ( wait_secs is not None and seconds_elapsed >= wait_secs ): @@ -111,6 +112,9 @@ async def _wait_for_finish(self, wait_secs: int | None = None) -> dict | None: if seconds_elapsed > DEFAULT_WAIT_WHEN_JOB_NOT_EXIST_SEC: return None + finally: + seconds_elapsed = math.floor((datetime.now(timezone.utc) - started_at).total_seconds()) + # It might take some time for database replicas to get up-to-date so sleep a bit before retrying await asyncio.sleep(0.25)