diff --git a/lib/upload-manager.js b/lib/upload-manager.js index af52573..d067b77 100644 --- a/lib/upload-manager.js +++ b/lib/upload-manager.js @@ -941,6 +941,8 @@ class UploadManager extends EventEmitter { const activeEntry = { jobId, speedKbs: 0, bytesUploaded: 0 }; this.activeJobs.set(uploadId, activeEntry); + let lastEmitTime = 0; + const PROGRESS_EMIT_INTERVAL = 250; const progressCb = (bytesUploaded, bytesTotal) => { const now = Date.now(); const timeDelta = (now - lastSpeedTime) / 1000; @@ -951,6 +953,8 @@ class UploadManager extends EventEmitter { } activeEntry.speedKbs = currentSpeedKbs; activeEntry.bytesUploaded = bytesUploaded; + if (now - lastEmitTime < PROGRESS_EMIT_INTERVAL) return; + lastEmitTime = now; const elapsed = Math.round((now - jobStart) / 1000); const remaining = currentSpeedKbs > 0 ? Math.round((bytesTotal - bytesUploaded) / (currentSpeedKbs * 1024)) : 0; this._emitProgress(uploadId, fileName, task.hoster, { accountId: task.accountId, @@ -1072,6 +1076,8 @@ class UploadManager extends EventEmitter { let currentSpeedKbs = 0; const activeEntry = { jobId, speedKbs: 0, bytesUploaded: 0 }; this.activeJobs.set(uploadId, activeEntry); + let lastEmitTime = 0; + const PROGRESS_EMIT_INTERVAL = 250; const progressCb = (bytesUploaded, bytesTotal) => { const now = Date.now(); const timeDelta = (now - lastSpeedTime) / 1000; @@ -1082,6 +1088,8 @@ class UploadManager extends EventEmitter { } activeEntry.speedKbs = currentSpeedKbs; activeEntry.bytesUploaded = bytesUploaded; + if (now - lastEmitTime < PROGRESS_EMIT_INTERVAL) return; + lastEmitTime = now; const elapsed = Math.round((now - jobStart) / 1000); const remaining = currentSpeedKbs > 0 ? Math.round((bytesTotal - bytesUploaded) / (currentSpeedKbs * 1024)) : 0; this._emitProgress(uploadId, fileName, task.hoster, { accountId: task.accountId,