10. Async Workers & Job Scheduling (File Watcher & Reminders)
Fase: 06 — Diseño Técnico
Entregable: 10
Proyecto: NoteVault (PC, Mac, Android, iPhone)
1. Tareas Asíncronas en Segundo Plano
A falta de colas de backend tipo RabbitMQ o Celery, NoteVault ejecuta tareas asíncronas en el proceso Node.js y en segundo plano en Flutter:
- Observador de Archivos (
FileWatcher): - Implementado en
frontend/src/core/fileWatcher.ts. - Escucha eventos
change,addyunlinken la bóveda con debounce de 300 ms. - Al detectar un cambio externo (ej. archivo sincronizado por Syncthing), notifica al frontend para refrescar la vista sin recargar la app completa.
- Programador de Recordatorios (
ReminderScheduler): - Escanea tareas con fecha y hora programada.
- En Desktop: Emite notificaciones nativas de Electron (
NotificationAPI). - En Móvil: Usa
flutter_local_notificationsintegrado con el gestor de alarmas exactas del sistema operativo.
2. Marco Conceptual: Tarea Asíncrona en Segundo Plano
1. **Entidad principal e independiente.**
2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que categoriza el worker local (`async_job_id`: `WORKER-FILE-WATCHER-SYNC`) consultado en el ciclo de vida del proceso principal.
3. **Existe por sí misma en el hilo de ejecución sin bloquear la interfaz gráfica del usuario**, y es la única responsable de escuchar eventos del sistema operativo y programar recordatorios.
4. **Punto de entrada y límite de consistencia:** Si un worker falla, el proceso de renderizado de la UI continúa operando sin interrupción.