19 lines
687 B
SQL
19 lines
687 B
SQL
ALTER TABLE generation_tasks
|
|
ADD COLUMN IF NOT EXISTS task_snapshot JSONB NOT NULL DEFAULT '{}'::jsonb;
|
|
|
|
CREATE TABLE IF NOT EXISTS task_dispatch_outbox (
|
|
task_id UUID PRIMARY KEY REFERENCES generation_tasks(id) ON DELETE CASCADE,
|
|
status TEXT NOT NULL DEFAULT 'pending'
|
|
CHECK (status IN ('pending', 'leased', 'sent', 'failed')),
|
|
available_at TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
attempts INTEGER NOT NULL DEFAULT 0,
|
|
lease_owner TEXT,
|
|
lease_expires_at TIMESTAMPTZ,
|
|
last_error TEXT,
|
|
dispatched_at TIMESTAMPTZ,
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS task_dispatch_outbox_poll_idx
|
|
ON task_dispatch_outbox(status, available_at);
|