找回密码
 立即注册

QQ登录

只需一步,快速开始

ngqj

银牌会员

270

主题

743

帖子

2827

积分

银牌会员

积分
2827
ngqj
银牌会员   /  发表于:2021-12-15 18:33  /   查看:1728  /  回复:7
本帖最后由 ngqj 于 2021-12-15 18:35 编辑

问题描述:目前同一条定时任务在执行的时候,如果本次定时任务未执行完成但又到了下一次任务启动的时间,系统会直接中止当前计划任务,直接选择启动下一次计划任务,并提示“事务(进程 ID 92)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。”字样。
问题分析:上一条既然未执行完成,直接KILL掉不合理吧? 毕竟每一条命令都有自己的使命

场景举例:比如我们从第三方物联网平台取多个建筑工地工人考勤数据,经过我们测试,一分钟大概能取到200条数据并成功保存到外联数据库中。但在实际执行中,由于受到网络等不可预估因素影响,几分钟都可能执行不完成。而管理上对数据时效性有要求,所以我们期望定时任务时间间隔越短越好,无论从1.2分钟到3分钟到5分钟甚至改为10分钟都可能数据保存不完,而时间结束以后直接被中止了。


需求描述:能让用户基于命令自主选择是命令执行优先还是时间启动优先。






7 个回复

倒序浏览
ngqj
银牌会员   /  发表于:2021-12-16 10:23:10
沙发
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-16 14:41:53
板凳
您好,不好意思,之前说的定时任务的策略是有问题的,实在抱歉。
我确认了一下,实际的定时任务策略应该是这样的:
所有的定时任务都会使用同一个队列,就是说定时任务时间一到,会往队列中排队,如果前面有未完成的任务,就会等待,一直等到它能执行。


我调查了一下,这个报错信息应该是数据库由于某些冲突产生的报错,和定时任务本身没有关系:
事务(进程 ID 92)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。请重新运行该事务。
这个报错产生的原因是由于多个进程同时访问一张数据表时,这张数据表已经被另外的进程占用,导致的冲突产生的,具体可以参考这篇文章中的介绍:
事务(进程 ID 51)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品_小白博客-CSDN博客_事务进程id与另一个进程锁死


这个问题产生的原因可能和SQL语句以及事务层级有关,您可以查看一下您的数据库修改日志,从逻辑上进行修改和调整。
SQL Server死锁问题:事务(进程 ID x)与另一个进程被死锁在 锁 | 通信缓冲区资源上并且已被选作死锁牺牲品。请重新运行该事务。 – A汉克先生 – 博客园-Mikel
如果命令中涉及较多的修改数据库操作,建议通过事务命令来将不同的进程进行隔离。
事务命令 - 活字格V7帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)


回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-31 16:29:04
地板
但是。。。。。。
这条命令很简单   执行都是几秒就完成了。但是今天早上7点多直接被停了40分钟。日志如下:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-31 18:18:34
5#
定时任务是单线的吗?  比如我有多个定时任务ABCD,A是三分钟执行一次,每次只要几秒,但是A到了三分钟,BCD没有执行完,也不跑A?
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-12-31 18:29:04
6#
ngqj 发表于 2021-12-31 18:18
定时任务是单线的吗?  比如我有多个定时任务ABCD,A是三分钟执行一次,每次只要几秒,但是A到了三分钟,BCD ...

是的呢,目前确实是这个策略,所有的定时任务都会使用同一个队列,就是说定时任务时间一到,会往队列中排队,如果前面有未完成的任务,就会等待,一直等到它能执行。您中间的几个定时任务耗时比较长吗?
回复 使用道具 举报
ngqj
银牌会员   /  发表于:2021-12-31 19:40:55
7#
这样太痛苦了,应该一个定时任务一个队列嘛
回复 使用道具 举报
Chelsey.Wang讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2022-1-4 18:10:24
8#
ngqj 发表于 2021-12-31 19:40
这样太痛苦了,应该一个定时任务一个队列嘛

您好,目前的策略确实是这样的,已经根据您的场景帮您记录为一个需求,需求编号:40740,我们后续也会内部讨论一下~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部