重构publish相关逻辑