在节点.js中保存应用程序状态
Saving Application State in Node.js
如何保存节点的应用程序状态.js 主要由 HTTP 请求组成的应用程序?
我在 Node 中有一个脚本.JS它与 RESTful API 配合使用,将大量 (10,000+) 产品导入电子商务应用程序。API 对可以发出的请求数量有限制,我们正在密切关注该限制。在上一次运行中,脚本退出并显示Error: connect ETIMEDOUT
,可能是由于超出 API 限制。我希望能够尝试连接 5 次,如果失败,请在恢复限制一小时后恢复。
发生崩溃(断电、网络崩溃等)时保存整个进度也是有益的。并且能够从中断的位置恢复脚本。
我知道 Node.js 作为一个巨大的事件队列运行,所有 http 请求及其回调都被放入该队列中(与其他一些事件一起)。这使其成为保存当前执行状态的主要目标。其他令人愉快的(对于这个项目来说并不完全必要)是能够在不同网络上的多台机器之间分配工作以提高吞吐量。
那么有没有现有的方法可以做到这一点呢?也许是一个框架?或者我需要自己实现这一点,在这种情况下,任何关于如何做到这一点的有用资源将不胜感激。
我不确定你说什么意思
我知道 Node.js 作为一个巨大的事件队列运行,所有 http 请求及其回调都被放入该队列中(与其他一些事件一起)。这使其成为保存当前执行状态的主要目标
如果您发现它与答案相关,请随时对此发表评论或阐述。
也就是说,如果您只是为此特定任务寻找持久性机制,我可能会推荐 Redis,原因如下:
- 它允许对许多数据类型进行原子操作;例如,如果您在 Redis 中有一个名为
num_requests_made
的条目,它表示发出的请求数,则可以使用INCR num_requests_made
在 Redis 中轻松增加此数字,并且保证它是原子的,从而更容易扩展到多个工作线程。 - 它有几种数据类型,可以证明对您的需求有用;例如,一个简单的字符串可以表示在特定时间段内发出的 API 请求数(如前面的项目符号点);您可以将需要重新提交的失败 API 请求的详细信息存储在列表中;等等。
- 它提供了发布/订阅机制,使您可以在程序的多个实例之间轻松通信。
如果这听起来很有趣或有用,并且您还不熟悉 Redis,我强烈建议您尝试交互式教程,该教程向您介绍了一些数据类型和命令。另一个很好的阅读材料是对 Redis 数据类型的十五分钟介绍。
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 来自应用程序状态的Jquery数据表源
- 检测Ionic中特定的应用程序状态变化
- 使用AsyncStorage实例化持久应用程序状态
- 如何在类似Om的不可变应用程序状态下对关系数据进行建模
- 在节点.js中保存应用程序状态
- 在 React + Flux 中从子项更新应用程序状态
- 输入模式应用程序状态,直到下次使用 Jquery 单击
- Rails API-移动应用程序状态文本错误
- 什么'是在AngularJS中处理应用程序状态和事件广播的最佳实践
- React.js:从独立组件访问整个应用程序状态
- Backbone.js如何根据特定的应用程序状态定义一组自定义路由
- 使用基于应用程序状态/数据的UI路由器
- Ionic混合应用程序,在退出时保存应用程序状态/数据
- 在AJAX应用程序中保持web应用程序状态
- 在 react-redux 应用程序状态的数据结构中具有 didInvalidate 属性的目的是什么?
- 使用react路由器更改应用程序状态时出现问题
- React Redux-如何在应用程序状态中设置字段
- ExtJS 4 Web 应用程序状态管理