A1090144284 2016-05-31 08:21 采纳率: 25%
浏览 1495
已采纳

移动短信网关接口开发,短信发送(优化)思路,各位一起来探讨一下

我有一个短信表(buff)放待发送的短信
buff 表 有 count 字段(发送次数),还写了两个个触发器

1、当 count >= 3 时 删除 该条信息
2、将删除的信息放在 msgBackup 中

发短信过程如下:
读取短信列表 单线程

发送到移动 (异步发送)

移动反馈结果(移动接收结果,异步接收),这个时候修改 count = 3 触发器执行 删除 和备份操作

但是修改 count = 3 数据量大时老是报错
事务(进程 ID 66)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。请重新运行该事务。

移动还反馈用户接收状态的,在msgBackup 中修改,所以也不敢将 修改 count = 3 弄成批量操作,害怕 修改移动反馈用户接收结果时 数据还在buff 中,

不知道我说的明白不,现在想求大神有什么解决思路,因为我们业务原因,发送短信很时集中,有时几个小时不发短信 ,有时半个小时不停的发

  • 写回答

1条回答 默认 最新

  • cxw65066165 2016-05-31 09:47
    关注

    获得的信息不多 不过大体可以看出瓶颈是在与数据库的更新操作上,提几个建议
    1. 消息发送类的系统不建议采用update操作,可以转换为insert操作
    2. 如果一定要update建议做批处理操作 当收到反馈结果的时候,先保存在JVM里面,另起线程异步批处理更新数据库,减少和数据库的交互

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3