Avoid progress events flooding
This commit is contained in:
parent
4f52a3b62e
commit
61c6288391
@ -326,6 +326,8 @@ class Backup(object):
|
|||||||
#: callback for progress reporting. Will be called with one argument
|
#: callback for progress reporting. Will be called with one argument
|
||||||
#: - progress in percents
|
#: - progress in percents
|
||||||
self.progress_callback = None
|
self.progress_callback = None
|
||||||
|
self.last_progress = 0
|
||||||
|
self.last_progress_time = time.time()
|
||||||
#: backup ID, needs to be unique (for a given user),
|
#: backup ID, needs to be unique (for a given user),
|
||||||
#: not necessary unpredictable; automatically generated
|
#: not necessary unpredictable; automatically generated
|
||||||
self.backup_id = datetime.datetime.now().strftime(
|
self.backup_id = datetime.datetime.now().strftime(
|
||||||
@ -512,11 +514,15 @@ class Backup(object):
|
|||||||
if not self.total_backup_bytes:
|
if not self.total_backup_bytes:
|
||||||
return
|
return
|
||||||
if callable(self.progress_callback):
|
if callable(self.progress_callback):
|
||||||
progress = (
|
if time.time() - self.last_progress_time >= 1: # avoid flooding
|
||||||
100 * (self._done_vms_bytes + self._current_vm_bytes) /
|
progress = (
|
||||||
self.total_backup_bytes)
|
100 * (self._done_vms_bytes + self._current_vm_bytes) /
|
||||||
# pylint: disable=not-callable
|
self.total_backup_bytes)
|
||||||
self.progress_callback(progress)
|
if progress - self.last_progress >= 0.5:
|
||||||
|
self.last_progress = progress
|
||||||
|
self.last_progress_time = time.time()
|
||||||
|
# pylint: disable=not-callable
|
||||||
|
self.progress_callback(progress)
|
||||||
|
|
||||||
def _add_vm_progress(self, bytes_done):
|
def _add_vm_progress(self, bytes_done):
|
||||||
self._current_vm_bytes += bytes_done
|
self._current_vm_bytes += bytes_done
|
||||||
|
Loading…
Reference in New Issue
Block a user