writing的判断更加合理
将tornado那一套搬过来。
解决bug