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 (
desktopPublishMaxAttempts = 3
maxConcurrentMonitorPlatformsPerDesktopClient = 2
monitorSucceededTaskCooldownSQL = "2 seconds"
monitorUnhealthyTaskCooldownSQL = "30 seconds"
)
var errDesktopTaskLeaseDeferred = errors.New("desktop task lease deferred")
@@ -577,8 +579,10 @@ func leaseNextQueuedMonitorTaskSQL() string {
AND recent.kind = 'monitor'
AND recent.target_client_id = $3
AND recent.platform_id = dt.platform_id
AND recent.status IN ('succeeded', 'failed', 'unknown', 'aborted')
AND recent.updated_at >= now() - interval '30 seconds'
AND (
(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 (
@@ -758,8 +762,10 @@ func leaseQueuedDesktopTaskByIDSQL() string {
AND recent.kind = 'monitor'
AND recent.target_client_id = $4
AND recent.platform_id = dt.platform_id
AND recent.status IN ('succeeded', 'failed', 'unknown', 'aborted')
AND recent.updated_at >= now() - interval '30 seconds'
AND (
(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
)
)
@@ -252,7 +252,9 @@ func TestLeaseNextQueuedMonitorTaskSQLSerializesPerClientPlatform(t *testing.T)
"COUNT(DISTINCT active_platform.platform_id)",
"active_platform.target_client_id = $3",
"< $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'",
} {
if !strings.Contains(normalized, fragment) {
@@ -274,7 +276,9 @@ func TestLeaseQueuedDesktopTaskByIDSQLSerializesMonitorPerClientPlatform(t *test
"COUNT(DISTINCT active_platform.platform_id)",
"active_platform.target_client_id = $4",
"< $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'",
} {
if !strings.Contains(normalized, fragment) {