FR一张报表同时有上百人填报,怎么防止死锁。

1.FR一张报表同时有上百人填报,怎么防止死锁。

2.数据库用的mysql8.0,填报的底表同时可能有查询操作。

FineReport darklinboxs 发布于 昨天 07:26 (编辑于 昨天 07:27
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
snrtuemcLv8专家互助
发布于昨天 07:47(编辑于 昨天 07:48

这个不建议帆软做

但是也可以参考

多人填报时如何防止内容覆盖 https://help.fanruan.com/finereport/doc-view-4110.html

=======

PS,填报数据量少,同时查询一般还不会死锁,大量数据填报很容易死锁,不单单帆软,所有工具都是一样的

  • darklinboxs darklinboxs(提问者) 我是分组织填报的,然后用的组织和日期作为主键,不能分时间填报。
    查询是有个上次填报内容,用于展现他上次填报了什么,也是按组织区分的
    2025-01-10 10:14 
  • snrtuemc snrtuemc 回复 darklinboxs(提问者) 分组织只是一个组织一个人,那就按组织+时间过滤就可以,一个组织多个人的话,或重复的干扰的
    2025-01-10 10:18 
最佳回答
0
shirokoLv6资深互助
发布于昨天 08:30
  1. 给主要查询条件加索引,减少死锁范围

  2. 加乐观锁,减少锁定行 ;如果一条数据需要填报内容过多或者填报时间过长,乐观锁拒绝的时候需要重填内容过多还可以加上暂存功能填报暂存- FineReport帮助文档 - 全面的报表使用教程和学习资料

  • darklinboxs darklinboxs(提问者) 我是分组织填报的,然后用的组织和日期作为主键,不能分时间填报。
    查询是有个上次填报内容,用于展现他上次填报了什么,也是按组织区分的
    2025-01-10 10:13 
最佳回答
0
ScyalcireLv7中级互助
发布于昨天 08:38

这个问题没啥最优解的,肯定会有问题

必须要同时填报么,或者按照权限/工号对人进行分批次填报,不在时间段内无法填报

  • darklinboxs darklinboxs(提问者) 我是分组织填报的,然后用的组织和日期作为主键,不能分时间填报。
    2025-01-10 10:12 
最佳回答
0
孤陌Lv6资深互助
发布于昨天 08:55

如果你接受相同数据不覆盖  那简单的  填报页面增加UUID 就可以了  填报属性 设置UUID为主键

  • darklinboxs darklinboxs(提问者) 我是分组织填报的,然后用的组织和日期作为主键,可以不。
    2025-01-10 10:12 
  • 孤陌 孤陌 回复 darklinboxs(提问者) 可以啊 同一个组织里 一个人填写 是没有问题的
    2025-01-10 10:26 
  • 孤陌 孤陌 回复 darklinboxs(提问者) 你 填报属性里 勾选 日期 和组织 字段为主键 这样日期+组织 的数据组合起来 数据库没有相同的 就新增 如果有相同的 就覆盖更新
    2025-01-10 10:28 
最佳回答
0
clbyoyoLv6见习互助
发布于昨天 09:23

这个不是很正常的吗??

首先你要保证数据尽量要有唯一索引如uuid;

其次你在数据提交的时候写个延时几毫秒;

  • darklinboxs darklinboxs(提问者) 我是分组织填报的,然后用的组织和日期作为主键,你说的延时提交怎么设置,求方法。
    2025-01-10 10:11 
  • clbyoyo clbyoyo 回复 darklinboxs(提问者) 采用自定义提交,在提交的时候写个延时
    2025-01-10 10:16 
  • 6关注人数
  • 63浏览人数
  • 最后回答于:昨天 09:23
    请选择关闭问题的原因
    确定 取消
    返回顶部