
Code con Bull
Bull queues, processors, jobs, jobs differiti, priorità, retries, eventi
1Cos'è Bull nel contesto di NestJS?
Cos'è Bull nel contesto di NestJS?
Risposta
Bull è una libreria Node.js per gestire code (queues) persistenti basate su Redis. Permette di eseguire attività in background in modo asincrono, gestendo priorità, retries e jobs differiti. NestJS fornisce un modulo @nestjs/bull che integra Bull in modo nativo nell'architettura modulare del framework, facilitando la creazione di workers e la gestione di jobs pesanti o di lunga durata.
2Qual è il ruolo di un processor in Bull?
Qual è il ruolo di un processor in Bull?
Risposta
Un processor è una funzione che elabora i jobs di una queue. Quando un job viene aggiunto alla queue, Bull chiama automaticamente il processor corrispondente per eseguire la logica di business. Il processor riceve il job come parametro e può accedere ai dati tramite job.data. Può essere sincrono o asincrono e deve restituire un valore o una Promise per segnalare il completamento del job.
3Come aggiungere un job a una queue Bull in NestJS?
Come aggiungere un job a una queue Bull in NestJS?
Risposta
Per aggiungere un job, occorre iniettare la queue tramite @InjectQueue('queueName') e poi usare il metodo add(). Questo metodo accetta parametri opzionali: un nome per il job, i dati da elaborare (payload) e opzioni come delay, priority, attempts. Il metodo restituisce una Promise contenente il job creato con il suo ID univoco, permettendone il tracciamento o la manipolazione successiva.
Qual è la funzione di Redis nell'architettura di Bull?
Come definire un delayed job in Bull?
+17 domande da colloquio
Altri argomenti di colloquio Node.js / NestJS
Fondamenti di Node.js
API Core di Node.js
Programmazione asincrona
Fondamenti di Express.js
Fondamenti di NestJS
Progettazione di API REST
Validazione e DTO
Documentazione API e contratti
Gestione degli errori
Test unitari
Pianificazione delle attività
Moduli e DI di NestJS
Configurazione e gestione degli ambienti
Autenticazione JWT
Autorizzazione e RBAC
Database con TypeORM
Prisma ORM
Middleware e Interceptor
Caricamento file
WebSockets
GraphQL con NestJS
Test end-to-end
Caching con Redis
DevOps, Logging e CI/CD
Docker e containerizzazione
Microservices
Migliori pratiche di sicurezza
Performance e deployment cloud
Padroneggia Node.js / NestJS per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis