fix: 게임 outbox 운영 시각을 UTC wall로 통일한다
KST 세션에서 ReadModel과 WebPush outbox의 producer provenance를 분리하고 due, lease, retention 비교를 UTC wall 계약으로 맞춘다. 기존 TIMESTAMP(3) 타입과 이전 DML 형태를 유지하면서 populated upgrade, pending requeue, delivered 보존과 두 번째 deploy no-op을 자동 검증한다.
This commit is contained in:
@@ -44,8 +44,11 @@ export class WebPushOutboxWorker {
|
||||
SELECT "id"
|
||||
FROM "web_push_outbox"
|
||||
WHERE "delivered_at" IS NULL
|
||||
AND "available_at" <= CURRENT_TIMESTAMP
|
||||
AND ("locked_at" IS NULL OR "locked_at" <= CURRENT_TIMESTAMP - INTERVAL '30 seconds')
|
||||
AND "available_at" <= (CURRENT_TIMESTAMP AT TIME ZONE 'UTC')
|
||||
AND (
|
||||
"locked_at" IS NULL
|
||||
OR "locked_at" <= (CURRENT_TIMESTAMP AT TIME ZONE 'UTC') - INTERVAL '30 seconds'
|
||||
)
|
||||
ORDER BY "id"
|
||||
FOR UPDATE SKIP LOCKED
|
||||
LIMIT 50
|
||||
@@ -116,7 +119,7 @@ export class WebPushOutboxWorker {
|
||||
WITH expired AS (
|
||||
SELECT "id"
|
||||
FROM "web_push_outbox"
|
||||
WHERE "delivered_at" < CURRENT_TIMESTAMP - INTERVAL '1 day'
|
||||
WHERE "delivered_at" < (CURRENT_TIMESTAMP AT TIME ZONE 'UTC') - INTERVAL '1 day'
|
||||
ORDER BY "id"
|
||||
LIMIT 500
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user