Aller au contenu
English

BullMQTaskQueue

import type { BullMQTaskQueue } from "@elie-laloum/outpost/queues/bullmq";
  • closeRequis
    () => Promise<void>
    Refuse les nouvelles opérations, attend celles en cours, puis ferme les connexions Redis de la file ; un second appel renvoie la même promesse. Arrêtez et attendez runQueueWorker() avant ; jobs, fences et résultats restent dans Redis.
  • enqueueRequis
    (request: QueueRequest) => Promise<QueueJob>
    Enregistre un job pending, ou renvoie le job stocké, quel que soit son statut, quand l’identifiant porte déjà une requête identique. Une requête différente sous un identifiant existant est refusée.
  • getRequis
    (id: string) => Promise<QueueJob | undefined>
    Renvoie le job d’un identifiant, ou undefined s’il est absent ; un job dont la deadline est dépassée revient cancelled.
  • claimRequis
    (request: QueueClaim) => Promise<QueueJob | undefined>
    Prend un job pending, ou un job active dont le bail a expiré, pour l’un des handlers listés ; incrémente son fence et ouvre un bail. Renvoie undefined quand aucun job n’est éligible.
  • renewRequis
    (lease: QueueLease, leaseMs: number) => Promise<QueueJob>
    Prolonge le bail de leaseMs, sans dépasser la deadline du job. Rejette avec Stale queue lease quand le worker, le fence ou l’expiration du bail ne correspondent plus.
  • completeRequis
    (lease: QueueLease, result: QueueResult) => Promise<QueueJob>
    Enregistre le résultat et marque le job done, ou failed quand result.error est renseigné. Rejette avec Stale queue lease si le bail n’est plus courant.
  • cancelRequis
    (id: string, fence: number) => Promise<QueueJob>
    Annule un job pending ou active et incrémente son fence ; un job terminé est renvoyé inchangé. Rejette avec Stale queue fence quand fence diffère du fence courant du job.
export interface BullMQTaskQueue extends TaskQueue {
  close(): Promise<void>;
}