这是一个创建于 4837 天前的主题,其中的信息可能已经有所发展或是发生改变。
请教个问题:
在用Tornado的时候,如果
1) 采用MVC架构,
2) 想要实现代码复用,
3) Async异步 database access (with MongoDB through AsyncMongo from bit.ly)
这样的结果就是很繁琐,
以用户注册为例,流程大概如下:
Controller
->UserHandler.register
->UserHandler.check_registered
->UserHandler.on_check_registered
->UserHandler.do_register
->UserHandler.on_do_register
->Controller
里面的callback到处都是,很糟糕
如果不用Async的话,就清晰得多
Controller
->UserHandler.register
->UserHandler.check_registered
->UserHandler.register
->Controller
大家都是怎么组织代码才能做到简单清晰呢?我觉得都破坏了python的简单之美了
-如果描述的不够清晰,我可以附上代码。
1 条回复 • 1970-01-01 08:00:00 +08:00
|
|
1
ayanamist 2011-08-25 09:15:04 +08:00
建议你参考一下Datastore Plus的实现,利用一个总的调度,加上yield和Decorator,来用同步的方式写异步的代码
|