Jellyfinでジョブやインポートの重複を防ぐ方法

エヴァ・ウォンテクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

各処理にスケジューラー、書き込み元、監視対象パス、完了シグナルを1つずつ割り当て、Jellyfinのジョブやインポートの重複を防ぎます。

再起動、コンテナの再作成、新しい自動化の導入後に、スキャン、インポート、メタデータ処理が重複していませんか?何かを無効にする前に、タスク名、開始時刻、コンテナID、スケジューラー、監視対象ディレクトリ、出力を記録してください。安全な対処は、重複したエントリを隠すのではなく、重複する所有権を取り除くことです。

同じ処理を開始できるすべてのスケジューラーを確認する

Jellyfinのスケジュールタスク、コンテナの再起動フック、ホストのcronまたはsystemdタイマー、ダウンロードマネージャーの後処理、APIを呼び出すサイドカーを確認します。2回の実行について、タイムスタンプとプロセスIDを比較してください。両方のタスクが同じイベントで開始される場合は、二次トリガーを無効にし、主要タスクは変更せずに残します。

Jellyfinのタスクは定期的または手動で実行でき、起動時タスクはネットワーク共有の準備が整う前に実行される場合があります(タスクのタイミングに関するリファレンス)。2回目のインポートで補うのではなく、マウントの準備完了を前提条件として扱ってください。

重複が起動後、Webhook後、手動再試行後のどのタイミングで発生するかを確認します。トリガーを特定すると、無効にすべき所有者を絞り込めます。すべてのスケジュールタスクを停止しても原因を隠すだけで、再発は防げません。

各パスに書き込み元を1つ割り当て、安定した識別情報を使う

ライブラリにファイルを移動するダウンローダーまたはインポーターは1つだけにし、すべてのコンテナが同じ正規パスを参照するようにします。異なるマッピングを持つ2つのコンテナは、同じファイルを別々の識別情報としてインポートする可能性があります。何かを削除する前に、重複した1組についてinode、チェックサム、パス、所有者を比較してください。

ソースファイルの名前が変更されたり、形式が変換されたりすると、Jellyfinは更新ではなく新しい項目として認識する場合があります。管理下で移動を完了し、1回だけスキャンして、自動化を再有効化する前に想定した項目数を確認してください。

ディスク上の設定ファイルだけでなく、稼働中のコンテナのラベルと監視対象パスを比較してください。新しいデプロイ後も、古いコンテナが古いウォッチャーを稼働させ続けることがあります。

再起動と再試行で重複防止を検証する

1つのトリガーを変更したら、スタックを再起動し、スケジュールされた時間帯を1回待ちます。1つのプロセス、1回のインポートイベント、1回のデータベース変更、1つの最終ファイルであることを確認します。その後、失敗または中断した処理を再実行し、再試行によって2つ目のコピーが起動しないことを検証してください。

スケジューラーとパスを1つにしても重複が続く場合、データベースに競合する識別情報がある場合、またはプラグインがタスクを繰り返し再作成する場合は、エスカレーションしてください。クリーンアップと防止テストに合格するまで、元のメディアとデータベースのバックアップを保持します。

二次的な書き込み元を削除したら、通常のインポートを1回、中断した再試行を1回実行します。期待される結果は、各ソース項目につきデータベースイベントが1回、最終ファイルが1つであることです。

再起動後に防止ルールを確認する

スタックを再起動し、選択したスケジューラーだけを有効にした状態で、スケジュールされた時間帯を1回待ちます。プロセス、パス、データベースイベントを記録し、所有権の境界を確認できるようにします。

再試行によって2回目のインポートが起動せず、ライブラリに有効な項目が1つだけ含まれている場合は、その設定を維持します。別のサービスが必要な場合は、自動化を1つずつ再有効化してください。

書き込み元が1つでも重複が再発する場合、データベースに競合する識別情報がある場合、またはプラグインが無効化したタスクを再作成する場合は、エスカレーションしてください。

サポートとヒント

もっと読む

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.