微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript 中可序列化、可恢复的函数调用,用于跨重启的有状态异步执行

如何解决javascript 中可序列化、可恢复的函数调用,用于跨重启的有状态异步执行

免责声明

我意识到这是一个糟糕的主意。这只是我在业余项目中玩弄的东西。这是一个聊天机器人,其中的命令由异步函数(框架约束)处理,有时这些函数包括“等待用户响应”之类的东西。这里的目标是能够在不破坏机器人的情况下重新启动机器人。

进入演出

这里的想法是创建一个类,使我能够编写类似...

type MyState = {
  val: number
  somethingNew: Serializable
}
new StatefulProcess<MyState>()
  .initialState({ val: 0 })
  .addStage('addFive',(state) => {// Immer
    state.val += 5
  })
  .addStage('timesTwo',(state) => {
    state.val *= 2
    state.somethingNew = new MySerializable()
  })
  .run()

然后以这样的方式编写StatefulProcess,在每个阶段成功运行后,将序列化状态(以及最后完成状态的名称)保存到数据库中。然后,如果我部署新版本的机器人,它所做的第一件事就是从数据库获取序列化的待处理进程并在下一阶段开始执行。

我的问题

有什么东西可以处理这种事情吗?你对如何最好地处理这件事有什么想法吗?我正在考虑使用 redux 但这似乎有点矫枉过正。此外,我试图让整个过程与通常的命令处理程序的编写方式相去甚远。我不想开始处理“redux land”的问题。这个想法只是有一个代表“重启后可以恢复的javascript进程”的类

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。