Add queue tables, quote SQL identifiers (v1.3.0)
- isQueue table option adds queue columns and a (status, available_at) index; BunSQLite.queue exposes add, claim, complete, fail and release_stale with atomic claims - Set busy_timeout on connections so workers in separate processes wait instead of failing with SQLITE_BUSY - Quote table and column names with backticks in generated SQL, so reserved words (to, order, group) work and unknown columns error instead of matching as string literals - Tests for queue ops, multi-process claims and reserved-word names Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Vendored
+47
@@ -185,3 +185,50 @@ export const DefaultFields = [
|
||||
fieldDescription: "The time when the record was updated. (Unix Timestamp)",
|
||||
},
|
||||
];
|
||||
export const QueueStatuses = [
|
||||
"pending",
|
||||
"processing",
|
||||
"completed",
|
||||
"failed",
|
||||
];
|
||||
/**
|
||||
* Fields added to queue tables (`isQueue`)
|
||||
*/
|
||||
export const QueueFields = [
|
||||
{
|
||||
fieldName: "status",
|
||||
dataType: "TEXT",
|
||||
notNullValue: true,
|
||||
defaultValue: "pending",
|
||||
fieldDescription: `The state of the job. (${QueueStatuses.join(" | ")})`,
|
||||
},
|
||||
{
|
||||
fieldName: "attempts",
|
||||
dataType: "INTEGER",
|
||||
notNullValue: true,
|
||||
defaultValue: 0,
|
||||
fieldDescription: "The number of times the job has been claimed.",
|
||||
},
|
||||
{
|
||||
fieldName: "available_at",
|
||||
dataType: "INTEGER",
|
||||
notNullValue: true,
|
||||
defaultValue: 0,
|
||||
fieldDescription: "The time from which the job can be claimed. (Unix Timestamp)",
|
||||
},
|
||||
{
|
||||
fieldName: "locked_at",
|
||||
dataType: "INTEGER",
|
||||
fieldDescription: "The time when the job was claimed. (Unix Timestamp)",
|
||||
},
|
||||
{
|
||||
fieldName: "locked_by",
|
||||
dataType: "TEXT",
|
||||
fieldDescription: "The worker that claimed the job.",
|
||||
},
|
||||
{
|
||||
fieldName: "last_error",
|
||||
dataType: "TEXT",
|
||||
fieldDescription: "The error from the last failed attempt.",
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user