我有一个 Android 应用程序,它使用 Google Cloud Endpoints 在设备之间同步数据。目前在每个 api 调用中,都会向所有其他设备发送 GCM 消息。通常,一个设备不仅会进行一次 api 调用,而且会直接进行多次调用。在这种情况下,在每次调用中发送消息的效率极低,因为所有其他设备都会多次调用以获取新数据,而不是全部调用一次。
所以我的想法基本上是在一个 api 调用等待大约 10 秒之后,然后发送一条 GCM 消息。每当有新呼叫进来并且计时器被重置时。
我的问题是我真的不知道如何在 AppEngine 中执行此操作。我的第一个想法是一个任务队列,它的任务以某种方式命名并有 10 秒的延迟。在 API 调用中,我检查任务是否在队列中,如果是,我将其删除并插入一个新任务。这是不可能的,因为即使任务不再存在,也无法再次使用任务名称。