返回列表 发帖
查看: 360|回复: 1

[新问题] Discuz!X3.5 计划任务好像会被同时多次执行

1

主题

2

回帖

8

积分

初学乍练

贡献
0 点
金币
5 个
发表于 2023-12-30 16:53:18 | 显示全部楼层 |阅读模式
BUG反馈
程序版本: X3.5
浏览器: 其他(请在帖子中详细说明浏览器) 
BUG地址: 隐藏内容
BUG截图: -
测试用户名: 隐藏内容
测试密码: 隐藏内容
升级Discuz! 3.5 后,原来自己写的一个定时采集插入任务出现一条记录多次写入的问题,在计划任务里用了插入前检查数据是否已经存在,问题依旧。

通过云数据库的审查系统,发现SQL插入语句几乎是同一时间插入,下面是三次SQL语句的执行时间记录:
2023-12-30 10:50:12.605010662
2023-12-30 10:50:12.608494518       
2023-12-30 10:50:12.581170947

于是改在MySQL表里加入多字段唯一性索引,并修改SQL语句加入 DUPLICATE KEY UPDATE ,重复插入问题才得意解决。

但是,很快,云数据库的审查系统就报警了,其内容为:

Info :Waiting for table metadata lock 会话ID:11171212
  1. DELETE FROM pre_common_process WHERE processid='DZ_CRON_15' OR expiry<1703919601
复制代码
Info :Waiting for table metadata lock  会话ID:11171213
  1. DELETE FROM pre_common_process WHERE processid='DZ_CRON_15' OR expiry<1703919601
复制代码


以上信息虽然一致,但是会话是两个会话,说明该计划任务的执行语句又在同一时间运行了两次。

根据一段时间的测试,X3.5 有以上问题,而同样的采集计划任务,在X3.4 情况下已正常运行一年半,均未发生过类似问题。

怀疑计划任务被多个程序同时引用造成同一时间被执行多次,且执行次数随机,少则2次,多则10余次。
我知道答案 回答被采纳将会获得1 贡献 已有1人回答
回复

使用道具 举报

35

主题

2011

回帖

3482

积分

应用开发者

Discuz! 运维

贡献
98 点
金币
616 个
QQ
发表于 2024-1-3 09:21:23 | 显示全部楼层
计划任务是依赖于程序被访问,如果你的任务时间长,并发了就会这样
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-5-4 03:40 , Processed in 0.069755 second(s), 8 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表