diff options
Diffstat (limited to 'python')
| -rw-r--r-- | python/citco_submission.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/python/citco_submission.py b/python/citco_submission.py index 6e46b84c..ea3b41cd 100644 --- a/python/citco_submission.py +++ b/python/citco_submission.py @@ -8,15 +8,23 @@ import logging @contextmanager def retry_on_exception_sftp(): + yield + + +def close_and_reconnect(): retries = 5 for i in range(retries): try: - yield + with retry_on_exception_sftp(): + CitcoSubmission._sftp.client.close() + CitcoSubmission.init_sftp() except (SSHException, OSError) as e: if i == retries - 1: raise e else: - time.sleep(60) + time.sleep(60 * i) + else: + return def run(): @@ -32,10 +40,7 @@ def run(): continue CitcoSubmission.commit() except (SSHException, OSError): - with retry_on_exception_sftp(): - CitcoSubmission._sftp.client.close() - CitcoSubmission.init_sftp() - + close_and_reconnect() time.sleep(60) CitcoSubmission.check_cache() |
