feat: add crm dead-letter operations and benchmark summary

This commit is contained in:
Codex
2026-06-30 23:07:43 +08:00
parent 90ad9e90a3
commit 9891fe9ef3
22 changed files with 1284 additions and 110 deletions

View File

@@ -464,13 +464,14 @@ async function appendLog(
await client.query(
`
insert into public.crm_webhook_log (
tenant_id, record_id, http_code, outcome, error_message, lead_id,
tenant_id, queue_id, record_id, http_code, outcome, error_message, lead_id,
request_body, request_payload, response_summary, signed_at, attempt
)
values ($1, $2, $3, $4, $5, $6, $7, $8::jsonb, $9, now(), $10)
values ($1, $2::uuid, $3, $4, $5, $6, $7, $8, $9::jsonb, $10, now(), $11)
`,
[
task.tenantId,
task.id,
task.recordId,
result.httpCode,
result.ok ? 'sent' : 'failed',
@@ -524,6 +525,7 @@ async function markTaskResult(
attempts = $3,
provider = $4,
next_attempt_at = case when $2 = 'retrying' then now() + ($5::int * interval '1 second') else null end,
dead_lettered_at = case when $2 = 'failed' then coalesce(dead_lettered_at, now()) else dead_lettered_at end,
last_error = $6,
last_http_code = $7,
last_response_summary = $8,
@@ -551,6 +553,7 @@ async function discardTask(client: pg.PoolClient, task: CrmQueueRow, message: st
set status = 'discarded',
attempts = attempts + 1,
last_attempt_at = now(),
dead_lettered_at = coalesce(dead_lettered_at, now()),
last_error = $2,
updated_at = now()
where id = $1