如何为node.js主要包含HTTP请求的应用程序保存应用程序状态?
我在Node.JS中有一个脚本,它与RESTful API一起将大量(10,000+)以上的产品导入电子商务应用程序。 API对可以提出的请求数量有限制,我们正在盯着这个限制。在之前的运行中,脚本以Error: connect ETIMEDOUT
退出可能是由于超出了API限制。我希望能够尝试连接5次,如果在恢复限制的一小时后恢复失败。
在发生崩溃(电源关闭,网络崩溃等)的情况下保存整个进程也是有益的。并且能够从它停止的位置恢复脚本。
我知道Node.js作为一个巨大的事件队列运行,所有的http请求及其回调都被放入该队列(连同其他一些事件)。这使其成为保存当前执行状态的主要目标。其他令人愉快的(这个项目不是完全必要的)将能够在不同网络上的多台机器之间分配工作以提高吞吐量。
那么有现成的方法吗?也许一个框架?或者我是否需要自己实现这一点,在这种情况下,任何有用的资源如何做到这一点将不胜感激。
答案 0 :(得分:3)
当你说
时,我不确定你的意思我知道Node.js作为一个巨大的事件队列运行,所有的http请求及其回调都被放入该队列(连同其他一些事件)。这使其成为保存当前执行状态的主要目标
如果您发现它与答案相关,请随时发表评论或解释。
也就是说,如果您只是为这项特定任务寻找持久性机制,我可能会推荐Redis,原因如下:
num_requests_made
的条目表示发出的请求数,您可以使用INCR num_requests_made
在Redis中轻松增加此数字,并且它保证是原子的,这使得它更容易扩展到多个工人。如果这听起来很有趣或有用而您还不熟悉Redis,我强烈建议您试用interactive tutorial,它会为您介绍一些数据类型和命令。另一个好的阅读材料是A fifteen minute introduction to Redis data types。