Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 30 additions & 6 deletions timewise/io/stable_tap.py
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,32 @@ def phase(self):
@backoff.on_exception(
backoff.expo,
vo.dal.DALServiceError,
max_tries=50,
max_tries=5,
)
def _update(self, *args, **kwargs):
return super(StableAsyncTAPJob, self)._update(*args, **kwargs)
def _update(self, wait_for_statechange=False, timeout=60.0):
n_tries = 0
max_tries = 10
while n_tries < max_tries:
try:
res = super(StableAsyncTAPJob, self)._update(
wait_for_statechange=wait_for_statechange,
timeout=timeout * (1 + n_tries),
)
except vo.dal.DALServiceError as e:
if "Read timed out" in str(e):
logger.debug(
f"{self.url} timed out after {timeout * (1 + n_tries):.0f}s"
)
n_tries += 1
continue
else:
raise e

return res

raise vo.dal.DALServiceError(
f"No success after {max_tries} tries for {self.url}!"
)


class StableTAPService(vo.dal.TAPService):
Expand Down Expand Up @@ -136,6 +158,8 @@ def get_job_from_url(self, url):
max_tries=5,
)
def run_sync(
self, query, *, language="ADQL", maxrec=None, uploads=None,
**keywords):
return super().run_sync(query, language=language, maxrec=maxrec, uploads=uploads, **keywords)
self, query, *, language="ADQL", maxrec=None, uploads=None, **keywords
):
return super().run_sync(
query, language=language, maxrec=maxrec, uploads=uploads, **keywords
)
Loading