跳转到主要内容

工作和任务

工作者

架构

immich-server 容器包含多个工作单元:

  • api:响应来自网页和移动应用的数据和文件的 API 请求。
  • microservices:以任务的形式处理大部分其他工作,例如缩略图生成和视频编码。简单来说,任务就是对后台处理数据的请求。

分离工作单元

如果您希望限制或分配工作单元,可以使用 环境变量 来指定哪个容器处理哪些任务。

例如,对于一个简单的设置,用一个容器处理网页/API,另一个容器处理所有其他服务,可以进行如下操作:

将整个 immich-server 块复制为一个新的服务,并在 副本 中进行以下更改:

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

创建两个 immich-server 服务副本后,对每个副本进行以下更改。这将允许一个容器仅提供网页界面和 API,另一个容器处理所有其他任务。

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

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

任务

当上传新资源时,会触发一系列任务,包括元数据提取、缩略图生成、机器学习任务以及存储模板迁移(如果已启用)。要查看任务状态,请导航到“管理 -> 任务”页面。

此外,某些任务(例如记忆生成)是按照预定计划运行的,默认情况下是每晚午夜运行。要更改任务运行时间或者启用/禁用任务,请导航至“系统设置 -> 夜间任务设置”。

备注

某些任务(外部库扫描、数据库转储)在系统设置的各自部分中进行配置。