fix: shorten monitor success cooldown
This commit is contained in:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user