[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的时候,定时器又扫描表又要发送数据,有什么好的办法!或者有什么能锁定数据呢!求给些思路
我觉得还是用伪代码表示比较方便:
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;
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。