SyncServer - change title of window

This commit is contained in:
Petr Kalis 2021-04-29 13:33:43 +02:00
parent d8d241ac5a
commit 8b570c7c82
3 changed files with 28 additions and 1 deletions

View file

@ -232,6 +232,7 @@ class SyncServerThread(threading.Thread):
self.loop = None
self.is_running = False
self.executor = concurrent.futures.ThreadPoolExecutor(max_workers=3)
self.timer = None
def run(self):
self.is_running = True
@ -384,7 +385,11 @@ class SyncServerThread(threading.Thread):
duration = time.time() - start_time
log.debug("One loop took {:.2f}s".format(duration))
await asyncio.sleep(self.module.get_loop_delay(collection))
delay = self.module.get_loop_delay(collection)
log.debug("Waiting for {} seconds to new loop".format(delay))
self.timer = asyncio.create_task(self.run_timer(delay))
await asyncio.gather(self.timer)
except ConnectionResetError:
log.warning("ConnectionResetError in sync loop, "
@ -423,6 +428,17 @@ class SyncServerThread(threading.Thread):
await asyncio.sleep(0.07)
self.loop.stop()
async def run_timer(self, delay):
"""Wait for 'delay' seconds to start next loop"""
await asyncio.sleep(delay)
def reset_timer(self):
"""Called when waiting for next loop should be skipped"""
log.debug("Resetting timer")
if self.timer:
self.timer.cancel()
self.timer = None
def _working_sites(self, collection):
if self.module.is_project_paused(collection):
log.debug("Both sites same, skipping")

View file

@ -401,6 +401,14 @@ class SyncServerModule(PypeModule, ITrayModule):
return remote_site
def reset_timer(self):
"""
Called when waiting for next loop should be skipped.
In case of user's involvement (reset site), start that right away.
"""
self.sync_server_thread.reset_timer()
""" End of Public API """
def get_local_file_path(self, collection, site_name, file_path):

View file

@ -316,6 +316,7 @@ class _SyncRepresentationWidget(QtWidgets.QWidget):
representation_id))
except ValueError as exp:
self.message_generated.emit("Error {}".format(str(exp)))
self.sync_server.reset_timer()
def _remove_site(self, selected_ids=None, site_name=None):
"""
@ -343,6 +344,7 @@ class _SyncRepresentationWidget(QtWidgets.QWidget):
self.model.refresh(
load_records=self.model._rec_loaded)
self.sync_server.reset_timer()
def _reset_site(self, selected_ids=None, site_name=None):
"""
@ -368,6 +370,7 @@ class _SyncRepresentationWidget(QtWidgets.QWidget):
self.model.refresh(
load_records=self.model._rec_loaded)
self.sync_server.reset_timer()
def _open_in_explorer(self, selected_ids=None, site_name=None):
log.debug("Open in Explorer {}:{}".format(selected_ids, site_name))