1
shallyy 2019-03-12 15:51:46 +08:00
后者
|
2
neoblackcap 2019-03-12 15:56:08 +08:00
耗时任务分两种,CPU 密集型,IO 密集型。你网络请求放在 Handler 里面做没问题,记得用 Tornado 自带的 Http Client。
Tornado 是一个高性能网络框架,不过究其根本其实还是封装了事件循环,因此你要运用非堵塞 IO 处理才能算是正确发挥它的功效。任何堵塞操作(包括在主线程读写数据库,读写文件,CPU 密集型操作)都会带来悲剧 |
3
tihiro OP 谢谢你的回答,但是我想知道为什么,利弊有哪些呢?
|
4
a852695 2019-03-12 17:50:19 +08:00
还是看你任务类型吧,celery 效率比较低
|
5
cs8814336 2019-03-13 09:00:13 +08:00
我理解你的协程是 tornado 进程里面的程序的协程吧. 这个问题当然是你能多进程多协程比多进程或者多线程号,所以能协程你就扔协程, 但是你说用 celery 其实还是一个队列解耦的一个好东西 . 要我选就选解耦微服务, 否则后面扩展很难
|
6
cs8814336 2019-03-13 09:01:22 +08:00 1
celery 也可以用协程 gevent 的, 所以其实你这 2 个感觉不能这么比着选
|
7
zhze93 2019-03-17 20:14:48 +08:00
我之前做的时候,直接放在 celery 里做的。
|