Node.js 定义从API读取数据并与数据库进行比较的无限循环的最佳位置

Node.js 定义从API读取数据并与数据库进行比较的无限循环的最佳位置,node.js,optimization,rabbitmq,nested-loops,binance,Node.js,Optimization,Rabbitmq,Nested Loops,Binance,我有一个程序,希望从API读取数据,并将该数据与存储在数据库中的数据进行比较。如果存在某些条件,则从数据库中删除数据并将数据发送给函数。 在本例中,数据库和API对我来说并不重要,但如果您想知道,我正在与 “节点二进制api”和Redis数据库以及node.js REDIS_PORT = process.env.PORT || 6379; redisClient = createClient(this.REDIS_PORT); binance.futuresMiniTickerS

我有一个程序,希望从API读取数据,并将该数据与存储在数据库中的数据进行比较。如果存在某些条件,则从数据库中删除数据并将数据发送给函数。 在本例中,数据库和API对我来说并不重要,但如果您想知道,我正在与 “节点二进制api”和Redis数据库以及node.js

REDIS_PORT = process.env.PORT || 6379;
    redisClient = createClient(this.REDIS_PORT);
    binance.futuresMiniTickerStream((miniTicker) => {
      miniTicker.forEach((_array) => {
        _array.forEach((selectedPair) => {
          redis.ZRANG(`binance-future-${selectedPair.symbol}`, (obj) => {
            obj.forEach(item => {
                item = JSON.parse(item);
                if (item.targetPrice > item.firstPrice && selectedPair.close >= item.targetPrice || item.targetPrice < item.firstPrice && selectedPair.close <= item.targetPrice) {
                  redisClient.ZREMRANGEBYSCORE(`binance-future-${selectedPair.symbol}`, item.targetPrice, item.targetPrice, () => {
                    console.log("Item Deleted");
                  })
                }
              });
            });
          });
        });
      });
    }
REDIS|u PORT=process.env.PORT | 6379;
redisClient=createClient(此.REDIS_端口);
binance.FutureSmitickerStream((miniTicker)=>{
miniTicker.forEach((_数组)=>{
_array.forEach((selectedPair)=>{
redis.ZRANG(`binance future-${selectedPair.symbol}`,(obj)=>{
对象forEach(项目=>{
item=JSON.parse(item);
如果(item.targetPrice>item.firstPrice&&selectedPair.close>=item.targetPrice | | item.targetPrice
如何优化这段代码?
另外,对于一些优化操作,我想使用RabbitMQ将我的代码分发给一些工作人员,我以前在本项目中使用过RabbitMQ,但如果有任何想法,我很乐意阅读。

您可以考虑使用合并多个redis操作。在开始使用RabbitMQ之前,您需要对程序进行基准测试,以确定与redis进行比较是否是瓶颈。否则rabbitmq不会带来性能改进,但会增加复杂性。您额外提出的rabbitmq问题本身听起来太宽泛了,当然,不应该附加到这个问题上——如果你在一个页面上问两个问题,这个网站的格式就不会真正起作用。你在地狱里,一些干净的代码原则可以帮助你。您还可以将回调分离到不同的函数。请阅读有关回调地狱的内容并使用promise