Skip to content

BunSqlDeliveryTrackingStore

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:34

new BunSqlDeliveryTrackingStore(options?): BunSqlDeliveryTrackingStore

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:40

BunSqlDeliveryTrackingStoreOptions = {}

BunSqlDeliveryTrackingStore

close(): Promise<void>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:150

Promise<void>

DeliveryTrackingStore.close


countBy(filter, groupBy): Promise<DeliveryTrackingCountByRow[]>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:136

DeliveryTrackingRecordFilter

readonly DeliveryTrackingCountByField[]

Promise<DeliveryTrackingCountByRow[]>

DeliveryTrackingStore.countBy


countRecords(filter): Promise<number>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:132

DeliveryTrackingRecordFilter

Promise<number>

DeliveryTrackingStore.countRecords


get(messageId): Promise<TrackingRecord | undefined>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:94

string

Promise<TrackingRecord | undefined>

DeliveryTrackingStore.get


init(): Promise<void>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:86

Promise<void>

DeliveryTrackingStore.init


leaseDue(now, limit, leaseUntil): Promise<TrackingRecord[] | undefined>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:102

Like listDue, but also leases the records it returns: in the same atomic step their nextCheckAt moves to leaseUntil, so other pollers of the store skip them until the poll stores their next check or the lease runs out. It resolves undefined when this store cannot lease atomically. DeliveryTrackingService leases only with a store that has both this and patchLeased, and otherwise uses listDue.

Date

number

Date

Promise<TrackingRecord[] | undefined>

DeliveryTrackingStore.leaseDue


listDue(now, limit): Promise<TrackingRecord[]>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:98

Date

number

Promise<TrackingRecord[]>

DeliveryTrackingStore.listDue


listRecords(options): Promise<TrackingRecord[]>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:126

DeliveryTrackingListOptions

Promise<TrackingRecord[]>

DeliveryTrackingStore.listRecords


patch(messageId, patch): Promise<void>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:143

string

Partial<TrackingRecord>

Promise<void>

DeliveryTrackingStore.patch


patchLeased(messageId, leaseUntil, patch): Promise<boolean>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:110

Applies patch only while the record is still leased until leaseUntil (its nextCheckAt equals it), and resolves whether it did. The check and the write are one atomic step, as in leaseDue. A poll stores its results this way, so one that ran past its lease cannot overwrite what another poll stored since.

string

Date

Partial<TrackingRecord>

Promise<boolean>

DeliveryTrackingStore.patchLeased


releaseLeases(messageIds, leaseUntil, nextCheckAt): Promise<void>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:118

Hands back leases a poll did not finish: moves nextCheckAt to the given time on those records whose nextCheckAt is still leaseUntil. A record another poll has leased since is left alone. Without it, DeliveryTrackingService lets such leases run out.

readonly string[]

Date

Date

Promise<void>

DeliveryTrackingStore.releaseLeases


upsert(record): Promise<void>

Defined in: packages/messaging/src/delivery-tracking/stores/bun-sql.store.ts:90

TrackingRecord

Promise<void>

DeliveryTrackingStore.upsert