Release 4.0.0-beta.9
· 2 minute read
这是 Midway 4.0 的第九个 beta 版本。
在这个版本中,我们新增了基于 piscina 的后台任务组件,支持 CPU 密集型任务的处理,同时升级 Zod 至 v4 版本,并修复了 Swagger UI 等问题。
🚀 主要新增功能
Background Task (Piscina) 支持
我们新增了 @midwayjs/piscina 组件,基于 piscina 封装,提供了多线程后台任务处理能力。这使得 Midway 应用可以轻松处理 CPU 密集型任务,而不会阻塞主线程。
你可以使用装饰器快速定义一个后台任务:
import { IPiscinaTask, PiscinaTask } from '@midwayjs/piscina';
/**
* 计算任务
*/
@PiscinaTask('calculate')
export class CalculateTask implements IPiscinaTask {
async execute(payload: { a: number; b: number; operation: 'multiply' | 'add' }) {
const { a = 0, b = 0, operation = 'multiply' } = payload || {};
if (operation === 'multiply') {
return a * b;
} else {
return a + b;
}
}
}
并在服务中调用它:
@Inject()
piscinaFramework: PiscinaFramework;
// ...
const result = await this.piscinaFramework.runTask('calculate', {
a: 10,
b: 20,
operation: 'add'
});
更多详细用法请参考 Piscina 组件文档。
Zod v4 支持
我们升级了验证组件以支持 Zod v4 版本,现在你可以使用 Zod v4 的新特性来进行参数校验。
🐛 修复与改进
- 修复了 Swagger UI
displayOptions渲染字符串的问题 - 修复了 View 组件中异步渲染触发时机的问题
- 修复了 Busboy 和 Upload 组件的校验逻辑
- 新增了服务发现 (Service Discovery) 的文档说明
- 依赖更新:
- 更新
bullmq至 v5.66.4 - 更新
express至 v4.22.1 - 更新
grpc-js至 v1.14.3
- 更新