Y
读取推送失败的数据执行push
N
一个事务内入库
需创建
唤醒创建fileId的线程
唤醒
无需推送:1 status无需推送2 fileid未创建完成
Create开始
无需创建:1 status无需创建2 fileid已创建完成
读取userFileId=''
读取库执行创建fileid
Main开始
睡眠
入库成功?
Main结束
需推送
无需操作
入库(确保重复入库的正确性)
创建失败
不做操作,打印日志,等待处理
推送qpid
Push开始
推送失败
删除节点
成功?
接收zk的推送,并入库