请问博客数据(包含多图片)的保存,如何设计事务?

AkataMoKa 发布于 2016/10/20 09:57
阅读 157
收藏 0

上传形式是博客,内容包括文字和图片。

提交步骤是:

  1. 博客内容插入数据库和索引(这两个步骤是在一个事务里面)
  2. 获取博客在数据库中的 ID
  3. 由于所有图片是在zip包里,所以需要解压
  4. 检查图片格式,保存图片到磁盘
  5. 将图片信息保存到另外一个表中。

我现在想实现的是:

当 2、3、4、5 步中的任何一个环节出错,步骤 1 插入的数据就自动回滚。

我现在想到的是把上面 1-5 都包在一个事务里。

想请教下大家,看看还有没有更好的方式?

加载中
0
黑狗
黑狗

图片,是单独的一个文件逻辑  对于博客来说  这个图片 就只是一个字符串(url地址)而已  上传博客,分为了图片上传的接口和博客文本信息的上传 图片上传完成以后,回调 在回调函数的执行 异步比较节约时间 你要把上面几个步骤放一个事务的现在是碰到什么问题? 没问题啊 插入数据以后,获取到数据的ID 事务这个时候并没有提交啊 


黑狗
黑狗
回复 @AkataMoKa : 然后 你的其他模块需要使用到图片的 通过id关联 或者直接用到图片的url链接 就ok 常用的图片只要不是归档的 不要zip压缩了存 zip压缩不了多少
黑狗
黑狗
回复 @AkataMoKa : 我不是跟你说了么。。。图片的逻辑 是单独的一个模块 最好用一张表来管理这种文件格式的 包括excel word 图片等 然后你还可以自己实现缓存 就是如果上传的文件md5已经存在了 你就不需要在保存了 直接取原来的文件
AkataMoKa
AkataMoKa
主要是觉得不太优雅,想请教下大家看有没有更好的方式哈。
0
Joyzhou
Joyzhou
图片处理应该是一个异步的流程,如果想做事务处理建议用补偿事务处理
AkataMoKa
AkataMoKa
谢谢回复。我查下“补偿事务处理”
返回顶部
顶部