yyzybb537 / libgo

Go-style concurrency in C++11
MIT License
3.18k stars 754 forks source link

不阻塞的http post调用 #306

Open bethebest0622 opened 9 months ago

bethebest0622 commented 9 months ago

你好,libgo非常友好。

我是初学者,想请教一个实际场景:

我有一个不定时的命令接收模块,每次有命令时 我需要: 发送http post请求,并处理返回的json

最基础的版本是同步处理这些请求,问题是:

http post请求比较慢(100ms),有的时候命令非常密集(1s内有1000个)

我不希望程序阻塞在http post请求这里,希望借用libgo协程处理的方式,做到比较好的性能。

可是我发现libgo的tutorial里面,都是先创建好go对象,然后调用调度器start,这一点似乎和go语言不尽相同,go语言只需要在函数前面加上go,它就会自动调度执行,而libgo,需要显式调用start,对于流式数据,有没有更好的办法呢?

有相应的demo或者您是否愿意指教一下呢? 万分感谢

nqf commented 9 months ago

你用什么库发送http 请求啊? 如果是beast 我觉得你可以直接使用异步接口, 这里的issue 应该不会有回复的...

bethebest0622 commented 9 months ago

你用什么库发送http 请求啊? 如果是beast 我觉得你可以直接使用异步接口, 这里的issue 应该不会有回复的...

@nqf

用的libcurl,就是想异步调用,对性能延迟比较敏感,我看看beast

nqf commented 9 months ago

你用什么库发送http 请求啊? 如果是beast 我觉得你可以直接使用异步接口, 这里的issue 应该不会有回复的...

@nqf

用的libcurl,就是想异步调用,对性能延迟比较敏感,我看看beast

libcurl 异步确实不太好用, 你也可以看看drogon, 这个库比较容易用

bethebest0622 commented 9 months ago

你用什么库发送http 请求啊? 如果是beast 我觉得你可以直接使用异步接口, 这里的issue 应该不会有回复的...

@nqf 用的libcurl,就是想异步调用,对性能延迟比较敏感,我看看beast

libcurl 异步确实不太好用, 你也可以看看drogon, 这个库比较容易用

@nqf 好的 谢谢 我试试 想尽量找个轻量高效的

vanehu commented 6 months ago

你用什么库发送http 请求啊? 如果是beast 我觉得你可以直接使用异步接口, 这里的issue 应该不会有回复的...

@nqf 用的libcurl,就是想异步调用,对性能延迟比较敏感,我看看beast

libcurl 异步确实不太好用, 你也可以看看drogon, 这个库比较容易用

cpr 异步啊