首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >Cordis >Cordis 的"可逆副作用"机制是如何工作的?

Cordis 的"可逆副作用"机制是如何工作的?

词条归属:Cordis

可逆副作用是 Cordis 最核心的特性,也是其实现安全热插拔与无残留卸载的基础。

1. 通过 ctx.effect() 注册副作用

插件的所有副作用都通过上下文对象上的 ctx.effect() 方法注册。调用时立即执行注册逻辑,同时必须返回一个清理函数,运行时把清理函数存入该插件 Fiber 的处置栈中。例如注册一个定时器时,立即执行的逻辑里启动定时器,返回的清理函数里清除该定时器,二者成对交出。

2. 卸载时逆序自动回收

当插件被卸载时,Cordis 会沿着依赖树自动撤销该插件注册的一切:事件监听、定时器、提供的服务、注册的命令等,全部按照注册的逆序(LIFO)逐一调用对应的清理函数。整个过程由运行时完成,插件作者无需手写清理逻辑,也不会因为遗漏某一项清理而导致资源泄漏。

3. 分步注册与分步回滚

ctx.effect() 常与生成器配合使用,可以做到分步注册、分步回滚:初始化过程中如果中途报错,已经执行过的操作可以被精准回滚,不会留下执行到一半的中间状态。这一能力使得插件的加载与卸载都具备原子性,是"创造模式"下运行时动态装卸插件仍能保持系统干净的关键。

相关文章
从架构层面解读 DeepSeek Harness:一款"一切皆插件"的 Agent 运行时
摘要:2026 年 8 月 13 日,DeepSeek 开源了它的第一款 Agent 产品 Harness v0.1(MIT 协议)。它不是又一个大模型,而是位于模型之上的"运行时层"。本文从架构设计原则出发,解析它最核心的主张——"一切皆插件(everything is a plugin)",以及支撑这一主张的三块地基:可逆副作用、服务/事件协作、作用域与预设复用。文中所涉信息均基于公开资料,观点为个人技术分析,供交流参考。
Archive
2026-08-17
7870
Hadoop 的 Checkpoint 机制是如何工作的?如何优化 Checkpoint 的频率?
Hadoop 的 Checkpoint 机制主要用于维护文件系统的元数据一致性,防止因 NameNode 故障导致的数据丢失。Checkpoint 主要通过 Secondary NameNode(在 Hadoop 2.x 及以后的版本中,这个角色可以由 Checkpoint Node 或 Standby NameNode 承担)来实现。
代码小李
2025-01-23
6850
Cordis 插件引擎拆解:DeepSeek Harness 如何用 5 个事件模式实现无限扩展
系列:DeepSeek Harness 源码实战 | 进度 2/16 原文仓库:https://github.com/deepseek-ai/deepseek-harness
怕浪猫
2026-09-11
2300
JavaScript 是如何工作的:WebRTC 和对等网络的机制!
WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。
前端小智@大迁世界
2019-03-15
3.5K0
Cordis:从开源 QQ 机器人内核到 DeepSeek Harness 平台底座
假设你写了一个聊天机器人,最初逻辑都在一个文件里。功能变多后你开始拆模块,但模块化只解决"代码怎么组织",解决不了另外四件事:
Lss233
2026-08-18
2.2K1
点击加载更多
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券