我有一个代码,它将对一个软件提供多个并发调用,该软件提供一个REST接口来查询我们的系统。我们最近发现,足够多的并发调用(大约在30到100之间)会导致软件失败,并实际破坏备份的功能。
为了解决这个问题,如果有超过x个并发调用未完成,我想用代码块来解决这个问题,只在旧的调用解决后发送新的调用。由于我已经有许多优秀的ui,我还希望通过更新共享的低级请求方法来更改此行为。
我的“请求”方法返回一个承诺,最终通过“调用”ReDux效应在每个UI中调用一个ReDux传奇。这意味着我需要能够从我的请求方法返回一个promise,这意味着找到某种方法来返回一个promise,该promise在先前的请求解决之前不会尝试解决请求。
我开始写我自己的书,但我没有一个简单的方法来“告诫”一个承诺,告诉它以前的承诺已经完成。我自己滚动的最好方法是,我能够找出使用Opjix.RACE所涉及的内容,然后使用完全相同的CalnExtQueLeDeD方法,既需要解析又拒绝方法,一般来说它只是概念上有点丑陋。
有没有更好的方法来实现这一点?一个已经做过的API,或者一个干净的工作方式,承诺在任何一个旧的请求完成后,我的逻辑开始新的请求吗?