开发者社区> 问答> 正文

关于定时器扫描数据库,根据数据库的值去想webservice定时发送,求高手给个思路

[b][/b]现在有这样一个需求,有表A 字段col_a;现在我需要用定时器去定期扫描表A中的数据,根据字段col_a的值来做些逻辑操作!: col_a的值有0,1,2,3,4,5 如果为0:则等待15分钟把这条数据向一个webservice发送数据 如果为1:则等待一个小时把这条数据向一个webservice发送数据 如果为2:则等待4个小时钟把这条数据向一个webservice发送数据 如果为3:则等待8个小时把这条数据向一个webservice发送数据 如果为4:则等待12个小时把这条数据向一个webservice发送数据 (上面逻辑如果15分钟发送的失败col_a更新为1,一个小时发送失败col_a更新为2 以此类推,发送五次。如果一次成功则后面操作不需要做!如果五次都不成功则视为失败) 现在我想要些思路!我想等待用object.wait();但是这样会不会出现一个问题,当我一个还在wait的时候,定时器又扫描表又要发送数据,有什么好的办法!或者有什么能锁定数据呢!求给些思路

展开
收起
长安归故里. 2020-01-31 14:02:40 1976 0
1 条回答
写回答
取消 提交回答
  • 我觉得还是用伪代码表示比较方便:

    1. scan thread: List<String> col_a_list = get col_a record from db 
    scan thread: stop; 
    for (String col_a: col_a_list) { 
       int time = getTime(col_a);//get time based on col_a 
       startTimer(time, new WebServiceThread()); 
       update db record of col_a to tell make it not eligible for the    scan thread. 
    } 
    
    2. WebServiceThread: 
    
    If success { 
      update db record of col_a to tell make it not eligible for the    scan thread. 
    } else if (col_a == 4) { 
      update db record of col_a to tell make it not eligible for the    scan thread. 
    } else { 
      update col_a = col_a + 1; 
    }
    
    2020-01-31 14:02:53
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载