support timeout

modify
重构代码