【坑儿】多次调用自定义接口上传数据,记录上传次数bug
来源:互联网 发布:javascript input赋值 编辑:程序博客网 时间:2024/06/06 04:14
开始写的代码,其中标识 DailyWorkPut 记录多次出现反复,由于开始数据量少,排查了好久,一直以为是网络请求出现问题。。。。。后来增加测试数据后,用 log 打印才定位到本部分代码,发现这里多次开启同步线程,内部代码访问并修改了 DailyWorkPut ,,,,原来是最低级的错误,同步线程未加锁导致
注:这种问题最恶心,不定时出现错误,而且反复无常没有规律。。。
private void putProjectDailyWork(final String jobId , final String workContent) { new Thread(new Runnable() { @Override public void run() { int code = putDailyWorkMsg(jobId , workContent); if (code == 200) { //请求成功 DailyWorkPut++; if (DailyWorkPutTag == DailyWorkPut) { mHandler.sendEmptyMessageDelayed(3, 800); } } else { //请求失败 mHandler.sendEmptyMessageDelayed(2, 800); } } }).start();}
修改后:
lock = new ReentrantLock();
private void putProjectDailyWork(final String jobId , final String workContent) { new Thread(new Runnable() { @Override public void run() { //线同步加锁,防止多线程同时访问记录的 DailyWorkPut 数据 //1.获取锁 lock.lock(); try{ Log.i("UPDIALY", "上传信息::"+jobId+"==="+workContent); int code = putDailyWorkMsg(jobId , workContent); if (code == 200) { //请求成功 DailyWorkPut++; Log.i("UPDIALY", "put---daily----work----old:::"+DailyWorkPut); if (DailyWorkPutTag == DailyWorkPut) { Log.i("UPDIALY", "put---daily----work----old:::"+DailyWorkPut+"==="+DailyWorkPutTag); mHandler.sendEmptyMessageDelayed(3, 800); } } else { //请求失败 mHandler.sendEmptyMessageDelayed(2, 800); Log.i("UPDIALY", "put------失败"); } }finally { //2.释放锁 lock.unlock(); } } }).start();}
阅读全文
0 0
- 【坑儿】多次调用自定义接口上传数据,记录上传次数bug
- 同一个页面多次调用KindEditor上传插件
- Java防止重复数据多次调用接口导致数据库插入重复记录
- ueditor 添加自定义上传接口
- post上传文件bug记录-Jsp
- 记录一个上传头像的bug
- ajaxFileUpload异步上传资源,onchange多次调用问题的解决方案
- angular上传文件(选中后立即调用接口上传)
- Ueditor自定义图片上传接口-PHP版
- Delphi调用Http接口上传文件
- 调用微信接口上传图片总结
- 调用微信上传手机图片接口
- ajaxFileUpload上传问题,上传多次出现问题
- 数据上传到服务器的接口
- 今天文件上传失败多次。
- WebUploader重复多次上传问题
- SSM利用接口的方式上传文件,js调用接口上传文件,ajax利用接口上传文件
- Volley 自定义上传图片提交数据
- 基于连通域的汉字切割
- 最长公共子序列问题
- python 进阶-高阶函数
- hdu3047-带权并查集
- 欢迎使用CSDN-markdown编辑器
- 【坑儿】多次调用自定义接口上传数据,记录上传次数bug
- POJ 3468 A Simple Problem with Integers——区间更新的线段树
- image加密
- 西安房价在下个月内什么地方最值得买?——中篇
- 阿里云服务器nginx下如何添加伪静态以及配置静态资源地址
- struts2--使用validate()验证
- HTML之position:absolute relative static fixed的区别和理解
- hdu 2569 彼岸(递推)
- angularjs指令系统