ValwispDocs
Desarrolladores

Colas (BullMQ)

Las 9 colas reales del sistema, sus processors, y cuáles están definidas pero no conectadas.

Valwisp usa BullMQ (@nestjs/bullmq) para trabajo en segundo plano — cada módulo registra su propia cola vía BullModule.registerQueue({ name }); src/infrastructure/queues/queues.module.ts es solo un placeholder. Las constantes de nombre viven en src/infrastructure/queues/queue.constants.ts.

Regla del proyecto: cada cola es exclusiva de un único processor — BullMQ reparte los jobs entre todos los listeners de una cola, así que compartirla entre processors distintos haría que un job caiga en el processor equivocado.

Colas y processors reales

ColaProcessorJobs
billingbilling/billing.processor.tsGENERATE_INVOICES, AUTO_CUT, AUTO_ACTIVATE, SEND_REMINDERS — encolados por crons diarios (6am/8am/9am).
accountingaccounting/ledger-posting.processor.tsPosteo automático al libro diario, encolado desde billing/payments/invoices/cash-sessions.
provisioninginternet-services/provisioning.processor.tsProvisión masiva de servicios PPPoE (post-migración).
speed-upgradeinternet-services/speed-upgrade.processor.tsCambios masivos de velocidad/plan.
regularize-plansinternet-services/regularize-plans.processor.tsRegularización masiva de planes.
device-syncinternet-services/device-sync.processor.tsReintento de sync RouterOS/RADIUS que falló.
migrationmigration/migration.processor.tsImportación/sincronización desde Mikrowisp.

Colas definidas pero NO conectadas

NOTIFICATION_QUEUE y MONITORING_QUEUE existen como constantes (y así se documentan en el CLAUDE.md raíz) pero no tienen ningún BullModule.registerQueue() ni @Processor real:

  • El módulo notifications envía correo directo y síncrono vía MailService, sin encolar nada.
  • El módulo monitoring usa cron jobs de @nestjs/schedule (@Cron) directamente en monitoring.service.ts — polling de routers cada 5 min, métricas de radio cada 5 min, tráfico WAN cada 1 min — no pasa por BullMQ.

Si vas a trabajar en cualquiera de estos dos módulos, no asumas que existe una cola activa detrás.

On this page