Zapobiegaj duplikowaniu zadań Jellyfin i importów, przypisując każdej operacji jeden harmonogram, jednego zapisującego, jedną obserwowaną ścieżkę i jeden sygnał zakończenia.
Czy skanowania, importy lub zadania metadanych są duplikowane po ponownym uruchomieniu, odtworzeniu kontenera lub dodaniu nowej automatyzacji? Zapisz nazwę zadania, czas rozpoczęcia, identyfikator kontenera, harmonogram, obserwowany katalog i dane wyjściowe, zanim cokolwiek wyłączysz. Bezpieczna naprawa polega na usunięciu nakładających się właścicieli, a nie na ukrywaniu zduplikowanego wpisu.
Znajdź każdy harmonogram, który może uruchomić tę samą pracę
Sprawdź zaplanowane zadania Jellyfin, procedury ponownego uruchamiania kontenerów, cron lub timery systemd na hoście, przetwarzanie końcowe w menedżerze pobierania oraz każdy kontener pomocniczy wywołujący API. Porównaj sygnatury czasowe i identyfikatory procesów dla dwóch uruchomień. Jeśli oba zadania rozpoczynają się w wyniku tego samego zdarzenia, wyłącz dodatkowy wyzwalacz i pozostaw główne zadanie bez zmian.
Zadania Jellyfin mogą być uruchamiane cyklicznie lub ręcznie, a zadania startowe mogą wykonać się, zanim udział sieciowy będzie gotowy (informacje o harmonogramie zadań). Traktuj gotowość punktu montowania jako warunek wstępny, zamiast zezwalać na drugi import kompensujący ten problem.
Sprawdź, czy duplikat pojawia się po uruchomieniu, wywołaniu webhooka czy ręcznej ponownej próbie. Wyzwalacz zawęża zakres poszukiwań właściciela, którego należy wyłączyć; wyłączenie wszystkich zaplanowanych zadań ukrywa przyczynę, ale nie zapobiega jej ponownemu wystąpieniu.
Przypisz każdej ścieżce jednego zapisującego i jedną stabilną tożsamość
Upewnij się, że tylko jeden downloader lub importer przenosi pliki do biblioteki, a każdy kontener widzi tę samą kanoniczną ścieżkę. Dwa kontenery z różnymi mapowaniami mogą zaimportować ten sam plik jako dwie różne tożsamości. Przed usunięciem czegokolwiek porównaj inode, sumę kontrolną, ścieżkę i właściciela jednej pary duplikatów.
Jeśli plik źródłowy zostanie przemianowany lub przekonwertowany, Jellyfin może zobaczyć nowy element zamiast aktualizacji. Wykonaj kontrolowane przeniesienie, przeprowadź jedno skanowanie i sprawdź oczekiwaną liczbę elementów przed ponownym włączeniem automatyzacji.
Porównuj aktywne etykiety kontenerów i obserwowane ścieżki, a nie tylko plik konfiguracyjny zapisany na dysku. Stary kontener może nadal utrzymywać aktywny, nieaktualny obserwator po nowym wdrożeniu.
Sprawdź zapobieganie duplikatom po ponownym uruchomieniu i ponowieniu próby
Po zmianie jednego wyzwalacza uruchom ponownie stos i poczekaj na jedno wystąpienie zaplanowanego okna. Potwierdź jeden proces, jedno zdarzenie importu, jedną zmianę w bazie danych i jeden plik końcowy. Następnie powtórz nieudaną lub przerwaną operację, aby sprawdzić, czy ponowna próba nie uruchamia drugiej kopii.
Zgłoś problem do dalszej analizy, gdy duplikaty utrzymują się mimo jednego harmonogramu i jednej ścieżki, baza danych zawiera sprzeczne tożsamości lub wtyczka wielokrotnie odtwarza zadania. Zachowaj oryginalne multimedia i kopię zapasową bazy danych do czasu pomyślnego zakończenia czyszczenia i testu zapobiegania.
Po usunięciu dodatkowego zapisującego wykonaj jeden normalny import i jedną przerwaną ponowną próbę. Oczekiwany rezultat to jedno zdarzenie w bazie danych i jeden plik końcowy dla każdego elementu źródłowego.
Potwierdź regułę zapobiegania po ponownym uruchomieniu
Uruchom ponownie stos i poczekaj na jedno zaplanowane okno, gdy włączony jest tylko wybrany harmonogram. Zapisz proces, ścieżkę i zdarzenie w bazie danych, aby granica odpowiedzialności była możliwa do zweryfikowania.
Zachowaj konfigurację, jeśli ponowna próba nie uruchamia drugiego importu, a biblioteka zawiera jeden prawidłowy element. Jeśli potrzebna jest inna usługa, włączaj automatyzacje pojedynczo.
Zgłoś problem do dalszej analizy, gdy duplikaty powracają mimo jednego zapisującego, baza danych zawiera sprzeczne tożsamości lub wtyczka odtwarza wyłączone zadania.
Wsparcie i wskazówki
Więcej do przeczytania

Jak zoptymalizować połączenia z bazą danych Jellyfin dla kontenerów działających równocześnie
Zacznij od jednego właściciela bazy danych i zmierz zachowanie blokad SQLite; dodaj inny backend dopiero wtedy, gdy współbieżność i odzyskiwanie danych uzasadnią tę złożoność.

Jak naprawić Jellyfin po zapełnieniu woluminu bazy danych
Wstrzymaj zapisy, zachowaj bazę danych i pliki WAL, zwolnij miejsce bez bezmyślnego usuwania stanu, a następnie zweryfikuj integralność i pierwotne działanie.

Dlaczego Jellyfin odtwarza brakujące pliki z niewłaściwym właścicielem?
Błędny właściciel zwykle wynika z niezgodności tożsamości lub innej ścieżki importu; przed zmianą uprawnień potwierdź użytkownika aktywnego kontenera.

