Переглянути джерело

Merge remote-tracking branch 'origin/pr/237'

* origin/pr/237:
  progress thresold removed as Marek suggested
  Avoid progress events flooding

Fixes QubesOS/qubes-issues#4406
Fixes QubesOS/qubes-issues#3035
Marek Marczykowski-Górecki 5 роки тому
батько
коміт
fa2429aae4
1 змінених файлів з 8 додано та 5 видалено
  1. 8 5
      qubes/backup.py

+ 8 - 5
qubes/backup.py

@@ -326,6 +326,7 @@ class Backup:
         #: callback for progress reporting. Will be called with one argument
         #: - progress in percents
         self.progress_callback = None
+        self.last_progress_time = time.time()
         #: backup ID, needs to be unique (for a given user),
         #: not necessary unpredictable; automatically generated
         self.backup_id = datetime.datetime.now().strftime(
@@ -521,11 +522,13 @@ class Backup:
         if not self.total_backup_bytes:
             return
         if callable(self.progress_callback):
-            progress = (
-                100 * (self._done_vms_bytes + self._current_vm_bytes) /
-                self.total_backup_bytes)
-            # pylint: disable=not-callable
-            self.progress_callback(progress)
+            if time.time() - self.last_progress_time >= 1: # avoid flooding
+                progress = (
+                    100 * (self._done_vms_bytes + self._current_vm_bytes) /
+                    self.total_backup_bytes)
+                self.last_progress_time = time.time()
+                # pylint: disable=not-callable
+                self.progress_callback(progress)
 
     def _add_vm_progress(self, bytes_done):
         self._current_vm_bytes += bytes_done