Evita trabajos e importaciones duplicados de Jellyfin asignando a cada operación un programador, un escritor, una ruta supervisada y una señal de finalización.
¿Se duplican los análisis, las importaciones o los trabajos de metadatos después de reiniciar, recrear un contenedor o añadir una automatización? Registra el nombre de la tarea, la hora de inicio, el ID del contenedor, el programador, el directorio supervisado y el resultado antes de desactivar nada. La solución segura elimina la propiedad superpuesta en lugar de ocultar una entrada duplicada.
Encuentra todos los programadores que pueden iniciar el mismo trabajo
Comprueba las tareas programadas de Jellyfin, los ganchos de reinicio de contenedores, cron o los temporizadores de systemd del host, el procesamiento posterior del gestor de descargas y cualquier servicio auxiliar que llame a la API. Compara las marcas de tiempo y los ID de proceso de dos ejecuciones. Si ambas tareas se inician con el mismo evento, desactiva el activador secundario y deja sin cambios la tarea principal.
Las tareas de Jellyfin pueden ejecutarse periódicamente o de forma manual, y las tareas de inicio pueden ejecutarse antes de que un recurso compartido de red esté listo (referencia sobre los tiempos de las tareas). Trata la disponibilidad del montaje como un requisito previo en lugar de permitir que una segunda importación lo compense.
Comprueba si el duplicado aparece después del inicio, de un webhook o de un reintento manual. El activador acota qué propietario debe desactivarse; desactivar todas las tareas programadas oculta la causa sin evitar que vuelva a ocurrir.
Asigna a cada ruta un solo escritor y una identidad estable
Asegúrate de que solo un descargador o importador mueva archivos a la biblioteca y de que todos los contenedores vean la misma ruta canónica. Dos contenedores con asignaciones diferentes pueden importar el mismo archivo como dos identidades. Compara el inodo, la suma de comprobación, la ruta y la propiedad de un par duplicado antes de eliminar nada.
Si el archivo de origen cambia de nombre o de formato, Jellyfin puede verlo como un elemento nuevo en lugar de una actualización. Completa un traslado controlado, realiza un solo análisis y verifica el número esperado de elementos antes de volver a habilitar la automatización.
Compara las etiquetas activas de los contenedores y las rutas supervisadas, no solo el archivo de configuración almacenado en el disco. Un contenedor antiguo puede mantener activo un supervisor obsoleto después de una implementación nueva.
Valida la prevención durante el reinicio y el reintento
Después de cambiar un activador, reinicia la pila y deja que transcurra una vez la ventana programada. Confirma un proceso, un evento de importación, un cambio en la base de datos y un archivo final. Después, repite una ejecución fallida o interrumpida para verificar que el reintento no inicie una segunda copia.
Escala el problema cuando los duplicados persistan con un solo programador y una sola ruta, cuando la base de datos contenga identidades en conflicto o cuando un complemento recree repetidamente las tareas. Conserva el medio original y la copia de seguridad de la base de datos hasta que la limpieza y la prueba de prevención se completen correctamente.
Después de eliminar el escritor secundario, ejecuta una importación normal y un reintento interrumpido. El resultado esperado es un evento de base de datos y un archivo final por cada elemento de origen.
Confirma la regla de prevención después del reinicio
Reinicia la pila y espera durante una ventana programada con solo el programador elegido habilitado. Registra el proceso, la ruta y el evento de la base de datos para que el límite de propiedad sea observable.
Conserva la configuración cuando un reintento no inicie una segunda importación y la biblioteca contenga un único elemento válido. Vuelve a habilitar las automatizaciones de una en una si se necesita otro servicio.
Escala el problema cuando los duplicados regresen con un solo escritor, cuando la base de datos contenga identidades en conflicto o cuando un complemento recree tareas deshabilitadas.
Soporte y Consejos
Más para leer

Cómo optimizar las conexiones de la base de datos de Jellyfin para contenedores simultáneos
Comienza con un único propietario de la base de datos y mide el comportamiento de los bloqueos de SQLite; añade otro backend solo cuando...

Cómo reparar Jellyfin después de que su volumen de base de datos se llene
Detén las escrituras, conserva la base de datos y los archivos WAL, libera espacio sin eliminar el estado a ciegas y, después, verifica la...

¿Por qué Jellyfin vuelve a crear los archivos que faltan con el propietario incorrecto?
La propiedad incorrecta suele deberse a una discrepancia de identidad o a una ruta de importación diferente; comprueba el usuario activo del contenedor antes...

