Closed weimch closed 1 month ago
您好,请问这里的要求是否是将如下的代码更改为并发调用两个服务?以fiber举例:
新增服务是否是这样定义进行实现呢:)
您好,请问这里的要求是否是将如下的代码更改为并发调用两个服务?以fiber举例: 新增服务是否是这样定义进行实现呢:)
并发调用你找的代码片段没错(注意用FiberLatch来等待并发调用结束),新增服务可以这样定义。
修改/新增proto文件添加服务需要重新生成c++文件吧? 然后forward的proto文件也需要修改,这是没问题的吧,担心方法错了
修改/新增proto文件添加服务需要重新生成c++文件吧? 然后forward的proto文件也需要修改,这是没问题的吧,担心方法错了
感谢解答,这边测试完成效果如下,是否达到要求
感谢解答,这边测试完成效果如下,是否达到要求
future_forward也需要开发下(这个用Future-Then链串起来调)
已完成issue要求步骤,相关代码在个人仓库分支runtime
相关目录:trpc-cpp/examples/features/fiber_forward
trpc-cpp/examples/features/future_forward
测试步骤:
git clone https://github.com/Heaven2024/trpc-cpp && git checkout runtime
测试运行fiber:
. run_fiber.sh
测试运行future:
. run_future.sh
运行信息位于forward_server.log
有写文档吗?
正在编写中
你好,对于fiber我有一个疑问,日志中会有如下输出,是预期的行为吗?按我的理解两个并发调用的输出应该符合先后的顺序(again应该在之后)
这是并发调用代码
你好,对于fiber我有一个疑问,日志中会有如下输出,是预期的行为吗?按我的理解两个并发调用的输出应该符合先后的顺序(again应该在之后) 这是并发调用代码
符合预期的,fiber是并发的,谁先谁后执行不一定。
我想错了,感谢解答,报告已完成: 【腾讯文档】【腾讯犀牛鸟计划】在tRPC-Cpp的2种runtime下发起对2个下游的调用 https://docs.qq.com/aio/DT3NJc2ltZWdmSHdF
已经测试通过,文档写得很完善,此issue由 @Heaven2024 完成。
issue介绍
tRPC-Cpp提供了协程runtime,用于CPU密集的场景,使用同步编程;框架也提供了线程runtime,用于IO密集的场景,使用Future-Promise异步编程。
你需要使用这两种编程方式分别发起对2个下游服务的调用,并使用腾讯文档输出一份报告到issue回复里,报告需要包含你的实践过程(关键的代码以及日志输出等)以及不同编程方式的使用体会,最后提交相关变更代码到你个人的repo以及编译运行指引到issue回复里,方便我们测试验证你的确完成了issue。
具体地,你可以按下面的步骤完成此issue 1、使用examples/helloworld作为下游,在此基础上,新增一个service,创造两个下游服务。 2、使用examples/features/fiber_forward作为协程runtime的中转服务,在此服务里,使用fiber的工具(查阅fiber用户指南),并发调用两个下游。 3、使用examples/features/future_forward作为线程runtime的中转服务,在此服务里,使用future的Then链(查阅future用户指南),串行地调用两个下游。 4、【可选】除此之外,fiber和future用户指南里,提供了很多易用的接口,你能使用不同于2/3的方式,调用两个下游的调用吗?
参考资料
1、runtime介绍:https://github.com/trpc-group/trpc-cpp/blob/main/docs/zh/runtime.md 2、fiber用户指南:https://github.com/trpc-group/trpc-cpp/blob/main/docs/zh/fiber_user_guide.md 3、future用户指南:https://github.com/trpc-group/trpc-cpp/blob/main/docs/zh/future_promise_guide.md
其他说明
本issue为2024犀牛鸟开源人才培养活动专属issue,仅供在校大学生参与领取 【认领issue】在研学基地"issue营地"对应issue行的M~R列抢滩报名,即视为认领成功。 【完成issue】已认领issue的同学,请同步在本issue评论区回复“已成功领取本issue”; 如7天内无提交任何进展包括不限于comment \ commit \ Pull Request,则将视为同学主动放弃issue,组委会将释放issue给下一位等候者。