Skip to main content

Release 4.0.0-beta.9

· 2 minute read
Harry Chen
Maintainer of Midway

这是 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