fix: process insight jobs during backfill

This commit is contained in:
2026-08-21 19:09:39 +08:00
parent 31fc5ebd39
commit ca55c2fb3d
4 changed files with 133 additions and 20 deletions

View File

@@ -174,7 +174,8 @@ func (r *Repository) Claim(ctx context.Context) (claimedJob, error) {
var terminal *string
err = tx.QueryRow(ctx, `SELECT j.id,j.snapshot_id,j.merchant_id,s.terminal_source_key,j.module,j.created_at,j.updated_at
FROM ai_insight_jobs j JOIN ai_insight_snapshots s ON s.id=j.snapshot_id
WHERE j.id=(SELECT id FROM ai_insight_jobs WHERE status='QUEUED' AND scheduled_at<=now() ORDER BY scheduled_at,created_at FOR UPDATE SKIP LOCKED LIMIT 1)`).Scan(&job.JobID, &job.SnapshotID, &job.MerchantID, &terminal, &job.Module, &job.CreatedAt, &job.UpdatedAt)
WHERE j.id=(SELECT id FROM ai_insight_jobs WHERE status='QUEUED' AND scheduled_at<=now()
ORDER BY CASE WHEN trigger_reason='MANUAL' THEN 0 ELSE 1 END,scheduled_at,created_at FOR UPDATE SKIP LOCKED LIMIT 1)`).Scan(&job.JobID, &job.SnapshotID, &job.MerchantID, &terminal, &job.Module, &job.CreatedAt, &job.UpdatedAt)
if errors.Is(err, pgx.ErrNoRows) {
return claimedJob{}, ErrNotFound
}