业务场景: 我个人项目需要获取一个数据,需要大量调用网站的 api 去获取数据,然后他们一般都有调用次数限制,次数到了就返回错误或空.
情况: 所以我就找了多个网站的相同功能的 api,然后用一个循环链表连起来,当一个 api 响应失败的时候调用下一个链表的 api 如果还是失败就返回 error
问题: 然后现在问题来了,我需要并发情况下去调用这些 api,因为她们响应速度实在太慢,但是不加锁我怎么保证指向下一个链表的操作只执行一次. 我知道最简单的方法是 api 请求前加锁响应后释放,但是我一次请求估计要调用几十上百次 api 加了锁估计得等几分钟才能响应,所以有什么更好的方案去实现这个功能
补充一下我的项目是用 go 写的
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.