Automatizaciones del servidor

El trabajo que el servidor de tu empresa ejecuta en segundo plano: peticiones programadas, webhooks, control horario, propagaciones, proyectos, reparaciones y archivado del histórico.

El servidor de tu empresa ejecuta trabajo en segundo plano sin que nadie lo lance: llama a las URL programadas, envía los webhooks, mantiene los turnos y repara datos. Una parte la configuras tú; el resto corre sin configuración.

Cómo se ejecuta

El planificador reparte los componentes en grupos y arranca un hilo por grupo. Cada hilo recorre sus componentes en orden y vuelve a empezar tras una pausa de al menos 150 milisegundos. Cada componente guarda su propia fecha de próxima ejecución y sale sin hacer nada en el resto de vueltas.

SituaciónQué ocurre
Un componente fallaEl error queda en el log como tick.failed y el hilo sigue con el siguiente componente.
Un componente tarda más de 100 milisegundosLa ejecución queda registrada en la actividad de componentes del servidor.
La base de datos está en solo lecturaSolo corren la comprobación de PostgreSQL, el mantenimiento de conexiones y el envío a Redis.
El servidor está en pausaSolo corre el envío a Redis.
Varias instancias del servidorLos componentes que salen hacia fuera o escriben datos derivados están marcados como exclusivos de la instancia activa.

Dinaup puede apagar un componente concreto de una licencia con la marca [disable-cmp-<componente>- en la configuración del servidor.

Lo que configuras tú

Peticiones HTTP programadas

Componente HTTPCron. Cada 10 segundos lee los registros activos de la sección HTTP CRON y lanza los que corresponden según su intervalo y su horario. Campos, intervalos, resultado y avisos por correo: Programar peticiones HTTP.

Webhooks salientes

Componente OutgoingWebhooks. Vacía la cola de avisos pendientes hacia las URL que configuraste. Condiciones de disparo, cuerpo, cadencia y reintentos: Webhooks salientes. El ajuste disablewebhookssalientes del servidor apaga el encolado y el envío de toda la licencia; Dinaup lo usa en copias de desarrollo para no disparar webhooks de producción.

En la misma vuelta salen los correos de tu empresa: la cola de correo, el resumen diario de errores de la API y el Recap semanal.

Control horario

Componente EmployeeWorkingHoursUpdate. Pasa una vez por minuto y hace, en este orden:

PasoQué hace
Cierre de fichajes abiertosCada 10 minutos busca fichajes en curso sin hora de salida de los últimos 90 días, hasta 500. Si el día tenía turnos, cierra pasado el margen de cierre del empleado (240 minutos por defecto) y pone como salida el fin del plan. Sin turnos ese día, cierra 12 horas después de la entrada.
Descansos vencidosCierra los descansos que han agotado su duración.
Horarios y turnosAsigna a cada empleado el horario que le corresponde y genera los turnos del día en la primera pasada tras la medianoche local del empleado. Si borras los turnos del día, los vuelve a generar en la siguiente pasada.
AusenciasPropaga las ausencias laborales a los turnos afectados, con un barrido de respaldo por si la cola se perdió en un reinicio.
CoberturaDeriva el estado de cada turno a partir de los fichajes: Programada, EsperandoInicio, EnCurso, Presente o Ausencia.

Dónde ficha el equipo: Kiosco. Qué guarda cada jornada y cómo se descarga: El registro de jornada.

Lo que corre sin configuración

ComponenteCadaQué hace
RetainedMonitoringPropagator2 segundosReparte los lotes de cambios a los servicios que los escuchan: webhooks, Redis, PG Sync y las derivaciones.
RelatedDataPropagationCalculate y RelatedDataPropagationFlush60 segundosPropaga un cambio en un dato maestro a los registros que copian su valor.
SalesSchedule2 a 20 minutosRepara el estado de las ventas de los últimos 30 días sustituidas por una rectificativa y genera los movimientos de inventario de venta que falten.
PurchasesSchedule5 a 20 minutosRepara el estado de las compras sustituidas por una rectificativa.
AccountingMaintenance15 minutosRevisa el estado de los ejercicios contables a partir de los asientos y repara los eliminados repercutidos en las secciones incrustadas.
FixData10 minutosReparaciones de datos: cumplimiento de tipos de venta, campo sin factura, stock por almacén, sección del documento en firmas, tokens de URL de aplicaciones, cuentas contables de entidades y fecha de operación desde contabilidad.
HistoricalArchiveUna vez al día, entre las 02:00 y las 05:59 UTCMueve el histórico de cambios de más de 3 días de _historicos_h a _historicos_archivado_h. No se borra nada: las filas cambian de tabla.
ProjectsMaintanceCuando hay cambios en colaRecalcula los proyectos de la app Tareas y las dependencias entre sus tareas. Ver Proyectos.
FilesSetLastVersion10 minutosRepara la última versión de los archivos cuando cambió la tabla de imágenes.
PGSyncSyncCada vueltaActualización rápida de PG Sync. Ver PG Sync.
RedisSendDataCada vueltaPublica los cambios y el estado en tu Redis. Ver Eventos Redis.
FlushLogAPI15 segundosVuelca a la sección Uso API el consumo de la API por minuto: peticiones, errores, duraciones y bytes por clave API, función y app. El uso desde Play no cuenta. Ver Plataforma y sistema.

El resto de componentes (PostgreHealthCheck, PGConnectionsMaintance, SessionMaintenance, DiskCleanup, MemoryCompaction, RemoteConfigSync, APIHealthCheck, SharedMetrics, PublicFileMaintance y PublicTableSummarySave) cuidan la salud de la propia instancia: conexiones, sesiones, disco, memoria, configuración remota y métricas.

Relacionado

En esta página