做推送通知,选用的celery。使用后没有掉单,但是有时候推送数据慢。11:50到12:00查到推送2000笔,这时候有的用户已经延迟十分钟才将支付状态更新完成。后来排查是没有应用多线程,协程这些东西,默认只是开启几个进程。
CELERYD_CONCURRENCY = 20 这是开启几个进程设置,用了这个会卡死。。。
celery.worker_main(argv=[' ',
'--loglevel=info',
'--logfile=./log.txt',
'--pool=gevent',
'--concurrency=100',
])
最后看了看官网,还是有介绍的。有perfork,eventlet,gevent几种进行,协程方法,最后我们选用了gevent。测试结果是两分钟推送5000,这是在接收端等待3s的缘故。如果有需要,将机器配置提升一下,我想还会更快
http://blog.51cto.com/linuxnewstar/1884437
一个交换机配置示例的地址