Skip to content

Commit a7e33b7

Browse files
committed
fix(reprocessing-worker): fixes
1 parent d155fc7 commit a7e33b7

File tree

2 files changed

+48
-7
lines changed

2 files changed

+48
-7
lines changed

admin/failover_reprocessor.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func (m *ReprocessingJobManager) StartJob(config ReprocessingJobConfig) (*Reproc
126126

127127
// Set defaults
128128
if config.BatchSize <= 0 {
129-
config.BatchSize = 100
129+
config.BatchSize = 1000
130130
}
131131
m.Infof("[StartJob] Config validated, batch_size=%d", config.BatchSize)
132132

admin/router_reprocessing_handler.go

Lines changed: 47 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -702,10 +702,37 @@ func (r *Router) serveAdminHTML(c *gin.Context) {
702702
}
703703
}
704704
705+
let isRefreshing = false;
706+
let lastRefreshTime = 0;
707+
705708
async function refreshJobs() {
706-
const result = await apiCall('GET', '/jobs');
707-
if (result && result.jobs) {
708-
displayJobs(result.jobs);
709+
// Prevent concurrent requests
710+
if (isRefreshing) {
711+
console.log('[refreshJobs] Already refreshing, skipping request');
712+
return;
713+
}
714+
715+
// Debounce: prevent refreshing more than once per second
716+
const now = Date.now();
717+
if (now - lastRefreshTime < 1000) {
718+
console.log('[refreshJobs] Debounced, last refresh was ' + (now - lastRefreshTime) + 'ms ago');
719+
return;
720+
}
721+
722+
isRefreshing = true;
723+
lastRefreshTime = now;
724+
console.log('[refreshJobs] Starting refresh');
725+
726+
try {
727+
const result = await apiCall('GET', '/jobs');
728+
if (result && result.jobs) {
729+
displayJobs(result.jobs);
730+
console.log('[refreshJobs] Successfully refreshed ' + result.jobs.length + ' jobs');
731+
}
732+
} catch (error) {
733+
console.error('[refreshJobs] Error:', error);
734+
} finally {
735+
isRefreshing = false;
709736
}
710737
}
711738
@@ -796,9 +823,23 @@ func (r *Router) serveAdminHTML(c *gin.Context) {
796823
}
797824
}
798825
799-
// Auto-refresh jobs every 1 minute
800-
setInterval(refreshJobs, 60000);
801-
826+
// Auto-refresh jobs every 1 minute, but only when tab is visible
827+
let refreshInterval = setInterval(() => {
828+
if (!document.hidden) {
829+
refreshJobs();
830+
} else {
831+
console.log('[Auto-refresh] Tab hidden, skipping refresh');
832+
}
833+
}, 60000);
834+
835+
// Refresh when tab becomes visible after being hidden
836+
document.addEventListener('visibilitychange', () => {
837+
if (!document.hidden) {
838+
console.log('[Visibility] Tab visible, refreshing');
839+
refreshJobs();
840+
}
841+
});
842+
802843
// Initial load
803844
refreshJobs();
804845
</script>

0 commit comments

Comments
 (0)