Skip to content

启动与生命周期

plugins:
  htmlrender:
    provider: playwright
    startup: probe
直接配置键 默认值 语义
provider null playwrighttakumi 或第三方 Provider ID
startup off OFF 首次 operation lazy acquire;WARMUP eager startup;PROBE 再验证就绪
provider_config {} 只交给选定 Provider 解析的配置

插件入口读取 HtmlRenderConfig,调用 build_runtime_plan() 完成一次无 I/O composition,再通过 Entari add_service 注册 concrete HtmlRenderService。普通Python import 不注册服务,也不加载 Entari integration 或启动 adapter。

Launart stages

Stage 行为
preparing 先启动显式 aiohttp filehost;off 不 eager startup,warmup 启动 Provider,probe 再执行最小就绪探测
blocking 等待 Launart 退出信号,不建立第二套生命周期
cleanup 停止接纳新操作、排空在途操作、关闭 runtime,再关闭 filehost;多个失败聚合报告

Entari sideload remove 与插件热卸载同样进入 cleanup。关闭失败保持可重试;若runtime 排空被取消,filehost 会继续存活,下一次 cleanup 从同一关闭边界重试。startup 失败会立即回滚已获得的资源,同时保留启动错误与回滚错误。

Provider discovery、availability 与 compose 不执行 I/O。startup: off 不会永久禁用Provider;第一个已获准 Provider operation 可以 lazy acquire runtime resource。

HtmlRenderService 不向业务代码暴露 startup()probe()aclose()。handler由 DI 获得 service 后,直接依赖 service.rendererservice.templatesservice.resourcesservice.graphicsservice.capabilities。不要读取内部runtime,也不要在 handler 中重建或替换 service 持有的 composition。