Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 简单连接到redis时Lambda函数超时_Node.js_Heroku_Lambda_Redis_Timeout - Fatal编程技术网

Node.js 简单连接到redis时Lambda函数超时

Node.js 简单连接到redis时Lambda函数超时,node.js,heroku,lambda,redis,timeout,Node.js,Heroku,Lambda,Redis,Timeout,我有一个非常小的lambda函数,它的唯一目的是从Segment.io接收Webhook,并通过HSET向Redis哈希添加用户ID和时间戳 此过程的容量合理,每分钟100-200个请求。然而由于某种原因,我观察到许多HSET请求的时间超过了我对Lambda函数设置的5秒限制 我正在使用Heroku Redis的免费层。我连接了Redis监视器,我看到的是: 所以看起来Redis并没有超时,但更多的是Lambda出现了问题,或者由于某种原因Lambda无法连接到Redis并超时,但我不确定

我有一个非常小的lambda函数,它的唯一目的是从Segment.io接收Webhook,并通过HSET向Redis哈希添加用户ID和时间戳

此过程的容量合理,每分钟100-200个请求。然而由于某种原因,我观察到许多HSET请求的时间超过了我对Lambda函数设置的5秒限制

我正在使用Heroku Redis的免费层。我连接了Redis监视器,我看到的是:

所以看起来Redis并没有超时,但更多的是Lambda出现了问题,或者由于某种原因Lambda无法连接到Redis并超时,但我不确定

这是怎么回事?这是Heroku Redis的已知问题吗?我是否应该尝试其他方法?我之所以想使用Heroku Redis,是因为我正在使用Heroku链接(外部数据包装器),但我也可以使用外部Redis实例设置FDW

更新:
我试着将它从Lambda转移到一个单独的微服务服务器(为了保持一致,这是一个Heroku服务)。我看到了完全相同的重复超时问题,Redis没有运行缓慢的记录。将New Relic添加到服务器只显示了令人难以置信的指标——就New Relic而言,每个请求都在5毫秒内完成,这意味着超时发生在应用程序之前。这是否可能发生在路由层?或者(难以置信的是,对我来说)节点没有扩展到每秒请求的数量?

这只是我们的一个愚蠢错误,服务器在某些情况下从未向客户端返回响应,所以它超时了。

这只是我们犯的一个愚蠢的错误。在某些情况下,服务器从未向客户端返回响应,因此它超时。

散列的大小是多少,有多少个键?它不同,但我每10分钟清除一次,所以不是很大。现在它有2个键,我仍然看到超时。免费层的连接限制是20。尝试升级您的实例几分钟,然后再次运行您的基准测试。@Niloct I已升级;没有区别,仍然看到频繁的超时。不管怎样,连接的数量只有3-4个,所以我认为这不是问题所在。这很难。你联系过Heroku的支持者吗?这一定很愚蠢。散列的大小是多少,有多少个键?它是不同的,但我每10分钟清除一次,所以不是很大。现在它有2个键,我仍然看到超时。免费层的连接限制是20。尝试升级您的实例几分钟,然后再次运行您的基准测试。@Niloct I已升级;没有区别,仍然看到频繁的超时。不管怎样,连接的数量只有3-4个,所以我认为这不是问题所在。这很难。你联系过Heroku的支持者吗?这一定是件傻事。