跳到主要内容

工作與工作者

工作者

架構

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'

工作

當一個新的資產被上傳時,會啟動一系列的工作,包括元數據提取、縮略圖生成、機器學習任務及儲存模板遷移(如果啟用了此功能)。若要查看工作的狀態,請導航到管理後台 -> 工作頁面。

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

注释

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