工作與工作者
工作者
架構
immich-server
容器包含多個工作者:
api
:響應 Web 與移動應用的 API 請求,提供數據與檔案。microservices
:以 jobs 的形式處理大部分其他工作,例如縮略圖生成與影片編碼。簡單來說,job 是一個請求,用於在後台處理數據。
分離工作者
如果您希望節流或分配工作者,可以使用環境變數來指定哪個容器應該處理哪些任務。
例如,對於一個簡單的設定,可以一個容器處理 Web/API,另一個容器負責所有其他微服務,您可以按以下方式進行:
將整個 immich-server
模塊複製為一個新的服務,然後對 複製的部分 進行以下更改:
- immich-server:
- container_name: immich_server
...
- ports:
- - 2283:2283
+ immich-microservices:
+ container_name: immich_microservices
當您擁有兩個 immich-server 服務的副本時,對這些副本分別進行以下更改。這將允許一個容器僅提供 Web UI 和 API,另一個容器處理所有其他工作。
services:
immich-server:
...
+ environment:
+ IMMICH_WORKERS_INCLUDE: 'api'
immich-microservices:
...
+ environment:
+ IMMICH_WORKERS_EXCLUDE: 'api'
工作
當一個新的資產被上傳時,會啟動一系列的工作,包括元數據提取、縮略圖生成、機器學習任務及儲存模板遷移(如果啟用了此功能)。若要查看工作的狀態,請導航到管理後台 -> 工作頁面。

此外,有些工作(如記憶生成)會按照預設計劃運行,每晚午夜執行一次。若要更改它們執行的時間,或啟用/停用某個工作,請導航到系統設置 -> 夜間任務設置。

注释
某些工作(如外部庫掃描、數據庫轉儲)是在系統設置的各自版塊中配置的。