Implement sync service queue

This commit is contained in:
Dominic Ferrando
2026-07-03 14:07:47 -04:00
parent fc9cd6f1ae
commit 437300831f
4 changed files with 99 additions and 37 deletions
+6 -3
View File
@@ -3,7 +3,7 @@ import { db } from "./db";
import { log } from "../util";
// =====================
// SYNC RUNS
// PRODUCT SYNCS
// =====================
{
log.info({ name: "product_syncs" }, "Creating table");
@@ -11,8 +11,11 @@ import { log } from "../util";
await db.schema.createTable("product_syncs")
.$call(addDefaultColumns)
.addColumn("printful_product_id_filter", sql`integer[]`)
.addColumn("syncing_printful_product_ids", sql`integer[]`, (cb) => cb.notNull())
.addColumn("started_at", "timestamptz", (cb) => cb.unique())
.addColumn("syncing_printful_product_ids", sql`integer[]`, (cb) => cb
.notNull()
.defaultTo(sql`'{}'::integer[]`)
)
.addColumn("started_at", "timestamptz")
.addColumn("ended_at", "timestamptz")
.addColumn("has_failed", "boolean", (cb) => cb.notNull().defaultTo(false))
.execute()