目前系统对于接收外部接口请求,需要记录日志,返回处理结果时更新返回结果到日志表,同样向外部接口接口请求时,记录接口请求消息到日志,收到接口返回或调用失败时更新处理结果到日志表,要求业务处理失败时回滚数据,但仍然记录日志处理结果,请问如何优雅的处理?
一个发布项目用的接口,需要做这些操作: 1. 检查此项目的状态,是否可以发布(只有未发布过的才可以发布) 2. 后端上传文件(可能有很多个文件,现在一个请求是最多 10 并发上传)到云服务(对象存储),文件不在前端,在后端,发布之前不允许提前将这些文件传到云对象存储 3. 文件全都上传成功后,改写此项目状态为已发布 4. 返回结果,前端结束 loading 状态,提示发布成功 请问这个接口应该怎么设计?因为整体比较耗时,有可能在中间上传文件的过程中失败。 我先谈下我的理解: 1. 检查项目状态的时候,就加上悲观锁,不允许其他请求读取此项目的状态 2. 上传的过程中,如果有失败,就返回失败信息,结束此请求 3. 都成功的话,就改写项目状态后,解锁,其他请求可以继续
在代码里事务提交后方法结束,此时数据库是否已经执行了事务?因为事务提交返回了成功说明数据库已经处理了这个事务提交,但是此时数据库实际是否已经有执行完成这个事务?还是代码里事务提交完成后数据库实际并没有执行完成,只是先返回了成功的信息?现在碰到一个情况是方法提交结束后另外一个程序立刻调用存储过程查询数据会出现查不到的情况。