这种情况下的最佳做法是什么?
我有一个App Engine Python应用程序,有多个cron作业。由用户请求和cron作业实例化,可能会发送推送通知。这可以很容易地扩展到每分钟+ - 100次推送。
为每个批次设置和拆除与APN的连接不是我想要的。 Apple也不建议这样做。因此,即使用户请求完成或cron完成,我仍希望保持连接的活动状态。可能是超时(2分钟没有推,然后关闭然后连接)。
阅读GAE文档,我无法弄清楚是否有这样的东西可用。此外,我可能需要在不同的应用程序和/或模块中使用它。
答案 0 :(得分:0)
您可以将消息放入pull taskqueue并使用后端实例(或cron作业)来处理任务
答案 1 :(得分:0)
首先,请看一下Google Cloud Messaging。它非常酷,你可以比APNS的协议更容易使用它。
如果您不能使用GCM(因为代码重构等...),我认为AppEngine Managed VM现在适合您的情况。托管VM位于AppEngine和Compute Engine之间。
答案 2 :(得分:0)
您可以使用数据存储区(最终由memcache隐藏性能)来保留所有必需的APN(或任何其他)连接/协议状态/上下文信息,以便多个相关请求可以共享相同的连接,就像您的应用程序将是一个长寿的人。
也许不是微不足道的,但绝对可行。
某些请求可能需要暂时推迟,具体取决于共享连接状态/上下文,这是真的。