Google App Engine 的多用户计时器

Multi-user timer with Google App Engine

我们正在使用 Google App Engine 实现多用户计时器。当计时器结束时,我们需要做一些计算并将结果发送给用户。多个用户应该能够从不同的浏览器启动和暂停计时器。我们将使用 Channels API 进行交流。我们如何在特定时间触发计算?

我们的一个想法是,当计时器启动时,创建一个推送任务,eta 设置为计时器完成时间。当该任务 运行s 时,检查存储在内存缓存或数据存储中的计时器状态,如果状态因暂停计时器而被修改,则创建另一个任务。如果计时器完成,任务将启动计算。有没有更好的方法,因为不能保证任务 运行 恰好在 eta?

您可以有一个不断重复的任务(重新排队,最终以秒为单位指定延迟),它会检查计时器状态并在适当时执行计算,或者如果不适当则只执行 return。