已合并
feat(service): request context中实现async Redis client调用 #415
Wal1et创建于 8月11日
feat(service): request context中实现async Redis client调用 #415
已合并
Pull Request已成功合入, 合并人@王明琦
(感谢 Wal1et 的贡献)atomgit-bot
8月11日 评论:
8月11日 评论:
变更摘要
此 PR 在 RequestContext 中新增 redis 属性和 require_redis() 方法,向 Handler 暴露由 SystemContext 统一管理的异步 Redis 客户端。客户端的所有权仍归 SystemContext,请求上下文仅借用引用,不负责创建与关闭。同时补充了单元测试和系统测试,覆盖客户端复用、缺失配置、请求中断拒绝获取句柄以及 REST Handler 中异步执行 HSET/HGET 等场景,并更新了开发者文档以明确异步调用、Key 命名和客户端生命周期边界。
主要改动
RequestContext新增redis属性和require_redis()方法:在request_context.py中新增redis属性(通过require_redis()返回)和require_redis()方法,后者内部调用self.sysctx.require_redis()获取共享的异步 Redis 客户端,使 Handler 可直接使用redis.asyncio完整 API。require_redis()内置请求中断检查:require_redis()在执行前调用self.check_interrupted(),确保请求被中断后拒绝获取底层 Redis 句柄,防止在已中断的请求中继续操作共享资源。- 新增单元测试覆盖三种边界场景:在
test_request_context.py中新增test_request_context_exposes_shared_async_redis_client(验证多个请求共享同一客户端、请求关闭不关闭共享连接)和test_request_context_redis_requires_configuration_and_active_request(验证缺失配置抛出RedisUnavailable、中断请求抛出Interrupted)。 - 新增系统测试验证 REST Handler 异步 Redis 命令:在
test_echo_acceptance.py中新增test_rest_handler_can_use_raw_async_redis_commands,端到端验证 Handler 内通过ctx.redis执行HSET/HGET的完整链路。 - 补充开发者文档:更新相关文档,明确异步 Redis 调用方式、Key 命名规范和客户端生命周期边界(客户端由
SystemContext持有,请求代码不得关闭)。


不准确?
atomgit-bot
8月11日 评论:
8月11日 评论:
openJiuwen-bot
8月11日 评论:
8月11日 评论:
欢迎来到 openJiuwen 社区
Hey @u010240195 , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。


atomgit-bot
8月11日 评论:
8月11日 评论:
8月11日 添加了label:openJiuwen-cla/yes
openJiuwen-bot
8月11日 评论:
8月11日 评论:
8月11日 修改了pull request 的描述
8月11日 修改标题为 “feat(service): request context中实现expose async Redis client in”,原标题为“feat(service): expose async Redis client in request context”
8月11日 修改标题为 “feat(service): request context中实现expose async Redis client in”,原标题为“feat(service): expose async Redis client in request context”
8月11日 修改标题为 “feat(service): request context中实现async Redis client调用”,原标题为“feat(service): request context中实现expose async Redis client in”
8月11日 修改标题为 “feat(service): request context中实现async Redis client调用”,原标题为“feat(service): request context中实现expose async Redis client in”
8月11日 关联了issue:[Feature]: Agent Runtime - Agent执行
openJiuwen-bot
8月11日 评论:
8月11日 评论:
8月11日 添加了label:ci-successful
8月12日 合入了pull request
8月12日 删除了label:ci-successful
Paired: GitHub #39 ↔ GitCode !415
What type of PR is this?
/kind feature
主要内容
RequestContext增加redis属性和require_redis(),向 Handler 提供完整的异步 Redis 客户端。SystemContext统一创建、复用和关闭,请求上下文只借用客户端。kv、idempotency、queue、pubsub、lock等现有 Redis 原语及其行为不变。兼容性
RedisUnavailable错误。验证
uv run ruff check .uv run pytest -q:120 passedHSET/HGET。Self-checklist