这次改动只为增加retry 机制，对原先的接口逻辑不做任何修改--即使他们或许不太合理