
获得徽章 16
- 文件操作接口,涉及状态和事务,请问如何设计?
一个发布项目用的接口,需要做这些操作:
1. 检查此项目的状态,是否可以发布(只有未发布过的才可以发布)
2. 后端上传文件(可能有很多个文件,现在一个请求是最多 10 并发上传)到云服务(对象存储),文件不在前端,在后端,发布之前不允许提前将这些文件传到云对象存储
3. 文件全都上传成功后,改写此项目状态为已发布
4. 返回结果,前端结束 loading 状态,提示发布成功
请问这个接口应该怎么设计?因为整体比较耗时,有可能在中间上传文件的过程中失败。
我先谈下我的理解:
1. 检查项目状态的时候,就加上悲观锁,不允许其他请求读取此项目的状态
2. 上传的过程中,如果有失败,就返回失败信息,结束此请求
3. 都成功的话,就改写项目状态后,解锁,其他请求可以继续展开赞过41