inngest-py 0.4.21版本发布:新增Connect实验性功能与并行步骤优化
inngest-py是一个Python实现的Inngest事件驱动工作流框架,它允许开发者轻松构建可靠、可扩展的分布式系统。通过定义函数和步骤,开发者可以创建复杂的工作流,处理异步任务和事件驱动的业务流程。
新增Connect实验性功能
本次0.4.21版本引入了inngest.experimental.connect包,这是Inngest Connect功能的Python实现。Connect是一种服务间通信机制,允许不同的服务通过Inngest平台进行可靠的消息传递和函数调用。
Connect的主要特点包括:
- 服务发现与注册:服务可以自动发现并注册到Inngest平台
- 可靠通信:内置重试和错误处理机制
- 跨语言支持:不同语言实现的服务可以互相通信
虽然标记为实验性,但API设计已经相对稳定,开发者可以放心在项目中使用。Connect特别适合微服务架构,可以简化服务间的通信复杂性。
并行步骤API改进
新版本引入了ctx.group作为并行步骤的新推荐实现方式。与之前的step.parallel相比,ctx.group提供了更直观和灵活的并行操作接口。
使用示例:
async def my_function(ctx: Context):
results = await ctx.group.run(
lambda: step.run("first", lambda: do_something()),
lambda: step.run("second", lambda: do_something_else()),
)
# 处理并行步骤的结果
这种新API设计更符合Python的惯用写法,同时也为未来的功能扩展预留了空间。需要注意的是,step.parallel将在未来的版本中被移除,建议开发者尽快迁移到新的API。
其他改进与优化
- 测试增强:改进了异步测试的支持,确保框架在异步环境下的稳定性
- 内部重构:移除了对Tornado的测试依赖,简化了测试套件
- 连接稳定性:修复了Connect功能的重连机制,提高了在不可靠网络环境下的健壮性
- 云环境适配:优化了在Inngest Cloud环境下的函数运行行为
升级建议
对于现有项目,建议逐步评估并采用新的ctx.groupAPI替换原有的并行步骤实现。对于需要服务间通信的场景,可以开始尝试Connect功能,但需注意其仍处于实验阶段。
这个版本继续强化了inngest-py作为Python事件驱动工作流框架的能力,特别是在分布式系统和服务通信方面的支持,为构建复杂的企业级应用提供了更强大的工具集。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



