fix: shorten monitor success cooldown

This commit is contained in:
2026-06-22 21:15:05 +08:00
parent 8f7a83bba9
commit 5a32926009
2 changed files with 16 additions and 6 deletions
@@ -28,6 +28,8 @@ import (
const ( const (
desktopPublishMaxAttempts = 3 desktopPublishMaxAttempts = 3
maxConcurrentMonitorPlatformsPerDesktopClient = 2 maxConcurrentMonitorPlatformsPerDesktopClient = 2
monitorSucceededTaskCooldownSQL = "2 seconds"
monitorUnhealthyTaskCooldownSQL = "30 seconds"
) )
var errDesktopTaskLeaseDeferred = errors.New("desktop task lease deferred") var errDesktopTaskLeaseDeferred = errors.New("desktop task lease deferred")
@@ -577,8 +579,10 @@ func leaseNextQueuedMonitorTaskSQL() string {
AND recent.kind = 'monitor' AND recent.kind = 'monitor'
AND recent.target_client_id = $3 AND recent.target_client_id = $3
AND recent.platform_id = dt.platform_id AND recent.platform_id = dt.platform_id
AND recent.status IN ('succeeded', 'failed', 'unknown', 'aborted') AND (
AND recent.updated_at >= now() - interval '30 seconds' (recent.status = 'succeeded' AND recent.updated_at >= now() - interval '` + monitorSucceededTaskCooldownSQL + `')
OR (recent.status IN ('failed', 'unknown', 'aborted') AND recent.updated_at >= now() - interval '` + monitorUnhealthyTaskCooldownSQL + `')
)
AND recent.desktop_id <> dt.desktop_id AND recent.desktop_id <> dt.desktop_id
) )
AND ( AND (
@@ -758,8 +762,10 @@ func leaseQueuedDesktopTaskByIDSQL() string {
AND recent.kind = 'monitor' AND recent.kind = 'monitor'
AND recent.target_client_id = $4 AND recent.target_client_id = $4
AND recent.platform_id = dt.platform_id AND recent.platform_id = dt.platform_id
AND recent.status IN ('succeeded', 'failed', 'unknown', 'aborted') AND (
AND recent.updated_at >= now() - interval '30 seconds' (recent.status = 'succeeded' AND recent.updated_at >= now() - interval '` + monitorSucceededTaskCooldownSQL + `')
OR (recent.status IN ('failed', 'unknown', 'aborted') AND recent.updated_at >= now() - interval '` + monitorUnhealthyTaskCooldownSQL + `')
)
AND recent.desktop_id <> dt.desktop_id AND recent.desktop_id <> dt.desktop_id
) )
) )
@@ -252,7 +252,9 @@ func TestLeaseNextQueuedMonitorTaskSQLSerializesPerClientPlatform(t *testing.T)
"COUNT(DISTINCT active_platform.platform_id)", "COUNT(DISTINCT active_platform.platform_id)",
"active_platform.target_client_id = $3", "active_platform.target_client_id = $3",
"< $8::integer", "< $8::integer",
"recent.status IN ('succeeded', 'failed', 'unknown', 'aborted')", "recent.status = 'succeeded'",
"recent.updated_at >= now() - interval '2 seconds'",
"recent.status IN ('failed', 'unknown', 'aborted')",
"recent.updated_at >= now() - interval '30 seconds'", "recent.updated_at >= now() - interval '30 seconds'",
} { } {
if !strings.Contains(normalized, fragment) { if !strings.Contains(normalized, fragment) {
@@ -274,7 +276,9 @@ func TestLeaseQueuedDesktopTaskByIDSQLSerializesMonitorPerClientPlatform(t *test
"COUNT(DISTINCT active_platform.platform_id)", "COUNT(DISTINCT active_platform.platform_id)",
"active_platform.target_client_id = $4", "active_platform.target_client_id = $4",
"< $10::integer", "< $10::integer",
"recent.status IN ('succeeded', 'failed', 'unknown', 'aborted')", "recent.status = 'succeeded'",
"recent.updated_at >= now() - interval '2 seconds'",
"recent.status IN ('failed', 'unknown', 'aborted')",
"recent.updated_at >= now() - interval '30 seconds'", "recent.updated_at >= now() - interval '30 seconds'",
} { } {
if !strings.Contains(normalized, fragment) { if !strings.Contains(normalized, fragment) {