有一个资源(S1),每次初始化需要花费(T1)的时间。现在的做法很简单,后台首次启动的情况下,会异步初始化(N)个可用的(S1)放在redis队列(Q1)中。每次用户开始请求(S1)时,简单的从队列(Q1)中取一个(S1)返回给用户,同时后台会判断如果队列里可用资源长度小于(M)时会异步生成一个新的(S1)放进队列(Q1)中。但是这样的方案有问题:
针对问题1, 想过使用两个队列进行解决,开始初始化(S1)时,将(S1)push到队列(Q1)中,等(S1)初始化完成推送到(Q2)中,每次取都从(Q2)中获取。但是这样还是存在一些问题...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.