メインコンテンツにスキップ

ジョブとワーカー

ワーカー

アーキテクチャ

immich-serverコンテナには複数のワーカーが含まれています:

  • api: Webおよびモバイルアプリのデータとファイルに関するAPIリクエストに応答します。
  • microservices: サムネイル生成やビデオエンコードなどのほとんどの他の作業をジョブの形で処理します。簡単に言えば、ジョブとは、バックグラウンドでデータを処理するリクエストのことです。

ワーカーの分割

環境変数を使用して、どのコンテナがどのタスクを処理するかを指定することで、ワーカーを調整したり分散させたりすることもできます。

例えば、Web/API用のコンテナ1つとその他すべてのマイクロサービス用コンテナ1つを使用する簡単なセットアップの場合、以下を実行できます。

immich-serverブロック全体を新しいサービスとしてコピーし、コピーに以下の変更を加えます。

- immich-server:
- container_name: immich_server
...
- ports:
- - 2283:2283
+ immich-microservices:
+ container_name: immich_microservices

immich-serverサービスのコピーを2つ作成したら、それぞれに以下の変更を加えます。これにより、1つのコンテナはWeb UIおよびAPIのみをサービスし、もう1つのコンテナがその他すべてのタスクを処理します。

services:
immich-server:
...
+ environment:
+ IMMICH_WORKERS_INCLUDE: 'api'

immich-microservices:
...
+ environment:
+ IMMICH_WORKERS_EXCLUDE: 'api'

ジョブ

新しいアセットがアップロードされると、メタデータ抽出、サムネイル生成、機械学習タスク、ストレージテンプレート移行などの一連のジョブが開始されます。有効になっている場合は、ジョブのステータスを確認するには、管理 -> ジョブページに移動してください。

さらに、記憶生成などのいくつかのジョブはスケジュールで実行されます。デフォルトでは毎晩真夜中に実行されます。それらが実行される時間の変更やジョブの有効/無効を行うには、システム設定 -> 夜間タスク設定 に移動してください。

ノート

一部のジョブ(外部ライブラリスキャン、データベースダンプ)は、システム設定内の独自のセクションで設定されています。