我有一个在Ubuntu服务器上运行的节点应用程序,可以处理用户请求,并抓取其他网站的数据,然后将其返回给用户。
最近我们发现了一个问题,那就是当我们正在爬网的网站长时间(如一个小时)没有响应(服务器关闭)时,
我的节点应用程序将停止响应,并影响其他API的请求(其他API将无法处理请求,这将需要很长时间),CPU将会上升,最终整个服务器会关闭,解决的唯一方法是重新启动服务器,或者在服务器关闭之前重新启动节点应用程序。
一开始我以为原因是我没有为抓取其他网站设置超时,所以当请求进入时,由于他们的服务器关闭,很多连接都挂在那里并消耗了服务器资源,但是在我设置之后爬网超时(5秒),此问题仍未解决。
我完全不知道如何解决这个问题,所以有人可以给我一些建议吗?谢谢
环境:
包装:
Google Cloud Engine上的服务器