终于有python tornado兼容的苹果推送服务 异步APNS库了

2013-03-08 09:42:16 +08:00
 kernel1983
如果已经有其他解决方案了, 请也让我知道, 反正我动手之前没找到
tornado下面一些传统的库都要做一些修改, 其实我还想改改beanstalk的client端

具体在这里:
https://github.com/kernel1983/tornado_apns

feedback那部分我还没有测试过, 但是推送消息是没问题了
5316 次点击
所在节点    Python
8 条回复
kernel1983
2013-03-08 17:44:51 +08:00
求github星星&fork 谢谢 :)
alswl
2013-03-08 22:28:00 +08:00
在这种场景下面,我更倾向于使用 队列 + push worker 的方案。
kernel1983
2013-03-08 23:41:29 +08:00
@alswl 没错, 但是队列的库暂时也没有基于ioloop异步的, 还是需要继续hack
aisk
2013-03-08 23:44:26 +08:00
@kernel1983 队列的话就不需要异步了吧,保持长连接然后一直从队列取往苹果发,如果发不过来可以多增加几个worker
ipconfiger
2013-03-08 23:45:15 +08:00
apns的socket要保持长连接,频繁的连接apns服务器会导致被ban掉的
kernel1983
2013-03-09 00:25:25 +08:00
@ipconfiger 这个建议很对, tornado启动的时候做一次apns的连接就可以了, 编程的时候需要注意

@aisk 如果是在tornado里面做任何的socket操作而不异步, 就发挥不出tornado框架单线程的威力. 尤其是远程连接.

从这个角度讲, mysql的操作和queue/memcache server的操作因为是本地或者内网, 所以速度还可以接受, 但是连接到apple服务器应该还是会阻塞的挺厉害的.
aisk
2013-03-09 00:36:46 +08:00
消息队列加worker的话worker肯定就是单独进程了,apns的话又不需要获取发送的结果,这种模型很适用。这个时候消息队列其实类似一个代理,解决你说的连接远程服务器导致阻塞的问题。
kernel1983
2013-03-09 13:04:37 +08:00
@aisk 有道理, queue的方法很好.

现在多了一种方法, 希望大家喜欢, 助人为乐自己也享受
https://github.com/kernel1983/tornado_apns
https://github.com/kernel1983/tornado_s3
https://github.com/kernel1983/tornado_ses

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62293

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX