Google app engine 使用TaskQueue和数据存储计算任务组的完成时间

Google app engine 使用TaskQueue和数据存储计算任务组的完成时间,google-app-engine,google-cloud-datastore,app-engine-ndb,Google App Engine,Google Cloud Datastore,App Engine Ndb,我有一个推送任务队列,我的每个作业都由多个类似的任务队列任务组成。这些任务中的每一项完成时间不到一秒钟,并且可以向队列中添加新任务(它们也应该完成以考虑完成任务)。任务结果将写入数据存储 目标是了解作业何时完成,即其所有任务均已完成 写操作非常频繁,我无法将结果存储在一个实体组中。有一个很好的解决方法吗?在类似的环境中,我使用了一个基于memcache的方案,它没有数据存储实体组的显著写入速率限制: 每个作业都会获得一个与之关联的唯一memcache密钥,并将其传递给可能排队的每个后续执行任务

我有一个推送任务队列,我的每个作业都由多个类似的任务队列任务组成。这些任务中的每一项完成时间不到一秒钟,并且可以向队列中添加新任务(它们也应该完成以考虑完成任务)。任务结果将写入数据存储

目标是了解作业何时完成,即其所有任务均已完成


写操作非常频繁,我无法将结果存储在一个实体组中。有一个很好的解决方法吗?

在类似的环境中,我使用了一个基于memcache的方案,它没有数据存储实体组的显著写入速率限制:

  • 每个作业都会获得一个与之关联的唯一memcache密钥,并将其传递给可能排队的每个后续执行任务
  • 每个执行任务都会使用当前时间戳更新与作业键对应的memcache值,并将一个完成检查任务排队,该任务会延迟一个空闲超时值,该值大到足以在经过时声明作业已完成
  • 每个完成检查任务都会将作业密钥对应的memcache值与当前时间戳进行比较:
    • 如果增量小于空闲超时,则表示作业未完成(由于此完成检查任务已排队,因此执行了其他一些任务,因此队列中存在其他一些完成检查任务)
    • 否则工作就完成了

注意:空闲超时应大于任务在队列中可能花费的最大时间。

在类似的上下文中,我使用了基于memcache的方案,该方案没有数据存储实体组的显著写入速率限制:

  • 每个作业都会获得一个与之关联的唯一memcache密钥,并将其传递给可能排队的每个后续执行任务
  • 每个执行任务都会使用当前时间戳更新与作业键对应的memcache值,并将一个完成检查任务排队,该任务会延迟一个空闲超时值,该值大到足以在经过时声明作业已完成
  • 每个完成检查任务都会将作业密钥对应的memcache值与当前时间戳进行比较:
    • 如果增量小于空闲超时,则表示作业未完成(由于此完成检查任务已排队,因此执行了其他一些任务,因此队列中存在其他一些完成检查任务)
    • 否则工作就完成了

注意:空闲超时应大于任务在队列中可能花费的最大时间。

谢谢您的建议。但我想知道这种方法是否持久。如果memcache由于某种原因被刷新,会不会出现问题?谢谢你的建议。但我想知道这种方法是否持久。如果memcache由于某种原因被刷新,是否会出现问题?