以下为《定时器测试思路整理》的无排版文字预览,完整内容请下载
测试8642 第三方数据抽取定时器 扩大锁粒度,取消表锁,添加任务锁
需求:第三方数据抽取定时器 扩大锁粒度,添加任务锁,即 在多线程环境下,使定时器任务执行串行化,在此之前是 针对 任务中的某几张数据量过大的表 添加 表锁,目前根据需求将锁粒度扩大到 任务锁
开发解释:第三方数据抽取定时器任务 任务每四小时被调度执行一次 目前情况是 某一任务可能执行时间过长 超过四个小时, 但是多线程环境下 ,下一个任务也会按时正常启动,并可能与上一个未执行完任务发生冲突.所以在一个任务没执行完的情况下,会继续执行,一直执行不完就一直执行,直到结束为止。期间启动的其他任务,都会立即结束。
(1)加锁的步骤:打开redis软件,连接Redis Server,***。
加锁的键名为:REDIS_USER_LOCK:MRTDP:THIRD_PARTY_SYNC:LOCK
/
/
/
/
这样就手动往redis里加锁完成了。?
删除锁 :直接删key?然后刷新一下redis连接
/
(2)
文档中心http://10.10.10.67/DocCenterService/html/login/login.html 账号和***、 1
操作步骤:往文档中心添加文件,根据文件日期设为最近三天之内的(这三个文件设置为了昨天),然后进行压缩, 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 1。
如果sql ( select * from third_pos_info_log where org_code='***' and table_name='SALE' and log_date='***' and comm_status='00' ) 查询结果为空则没有成功抽取过数据。
不加锁的情况下,执行定时器,查看定时器是否抽取数据成功。确保跑完定时器就能抽取出数据。(这是为了能确保100%抽出数据的情况)
然后再次把abnomal_info置为空、comm_status置为01。再加锁,然后执行定时器,确保没有抽出数据来。【abnomal_info置为空、comm_status置为01的sql为:Update third_pos_info_log set comm_status='01', abnomal_info=’’ where org_code='***' and table_name='SALE' and log_date='***' and comm_status='00' 】
把锁去掉后,执行定时器,又可以抽出数据了。到此就验证了开发的需求。
下面为没加锁,执行定时器,抽出数据过程的日志,有加锁成功和解锁成功。如图一
如果加上锁后,就没有加锁成功和解锁成功。如图二
/
[文章尾部最后300字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《定时器测试思路整理》的无排版文字预览,完整内容请下载
定时器测试思路整理由用户“赵木易咸”分享发布,转载请注明出处