Jak zapobiegać duplikowaniu zadań lub importów w Jellyfin

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

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

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.