【问题标题】:Provide Example of Apify Actor Handling State Persistence提供 Apify Actor 处理状态持久化的示例
【发布时间】:2020-03-16 15:16:38
【问题描述】:

Apify 文档建议处理

State persistence: 与传统的无服务器平台不同,参与者对参与者运行的持续时间没有限制。但是,这意味着可能需要不时重新启动参与者,例如当它正在运行的服务器将被关闭时。参与者需要考虑这种可能性。对于短跑演员来说,重启的机会非常低,重复运行的成本也很低,所以重启可以忽略不计。但是,对于长时间运行的 Actor 而言,重新启动可能会非常昂贵,因此这些 actor 应该定期将其状态保持在与 Actor 运行关联的键值存储中。开始时,actor 应首先检查是否存储了一些状态,如果有,则应从中断处继续

请提供演员的例子:

  • 定期保持其状态,可能保存到关联的键值存储中
  • 在开始时,actor 应首先检查是否存储了一些状态
  • 从他们离开的地方继续

【问题讨论】:

    标签: apify


    【解决方案1】:

    requestQueuerequestList 等基本工具会自动保持当前状态,对于后者,您还可以按此处详述的更高频率手动触发它:https://sdk.apify.com/docs/api/request-list#requestlistpersiststate

    如果您不使用爬虫类并且需要在 actor 的运行时保留一些自定义状态数据,建议使用键值存储,您可以在其中保存具有适当内容类型的任意数据,如下所述:@987654322 @

    为了恢复之前的状态,您可以将之前保存的状态数据再次从存储中加载到您需要保存状态的变量中,以恢复内存中的之前的状态。如果您不指定内容类型,则默认为 JSON,当您从键值存储加载它时,您可以直接将其用作保存状态信息的对象,而无需进行额外的解析。

    【讨论】:

      猜你喜欢
      • 2011-01-09
      • 1970-01-01
      • 1970-01-01
      • 2015-06-23
      • 2020-03-12
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      相关资源
      最近更新 更多