UNPKG

@vendure/core

Version:

A modern, headless ecommerce framework

37 lines (36 loc) 1.77 kB
import { JobListOptions } from '@vendure/common/lib/generated-types'; import { ID, PaginatedList } from '@vendure/common/lib/shared-types'; import { Injector } from '../../common/injector'; import { InspectableJobQueueStrategy } from '../../config'; import { Job, JobData, JobQueueStrategyJobOptions } from '../../job-queue'; import { PollingJobQueueStrategy } from '../../job-queue/polling-job-queue-strategy'; /** * @description * A {@link JobQueueStrategy} which uses the configured SQL database to persist jobs in the queue. * This strategy is used by the {@link DefaultJobQueuePlugin}. * * @docsCategory JobQueue */ export declare class SqlJobQueueStrategy extends PollingJobQueueStrategy implements InspectableJobQueueStrategy { private rawConnection; private connection; private listQueryBuilder; init(injector: Injector): void; destroy(): void; add<Data extends JobData<Data> = object>(job: Job<Data>, jobOptions?: JobQueueStrategyJobOptions<Data>): Promise<Job<Data>>; /** * MySQL & MariaDB store job data as a "text" type which has a limit of 64kb. Going over that limit will cause the job to not be stored. * In order to try to prevent that, this method will truncate any strings in the `data` object over 2kb in size. */ private constrainDataSize; next(queueName: string): Promise<Job | undefined>; private getNextAndSetAsRunning; update(job: Job<any>): Promise<void>; findMany(options?: JobListOptions): Promise<PaginatedList<Job>>; findOne(id: ID): Promise<Job | undefined>; findManyById(ids: ID[]): Promise<Job[]>; removeSettledJobs(queueNames?: string[], olderThan?: Date): Promise<number>; private connectionAvailable; private toRecord; private fromRecord; }