上海某家具网站建设方案,电商培训视频教程,做外贸没有网站需要什么条件,小程序加盟代理前景暂且不谈高并发 只谈并发 .
不想丢请求再去考虑高并发 MQ或redis的事(这里不考虑)
正题.记录自我需求处理并的情况.
公司的一个框架(一种商业框架很庞大)无法使用整合市面上那些较新的技术框架,只能使用基础的java工具
这里的接口是一个模块 是webservice的
外部系统调用…暂且不谈高并发 只谈并发 .
不想丢请求再去考虑高并发 MQ或redis的事(这里不考虑)
正题.记录自我需求处理并的情况.
公司的一个框架(一种商业框架很庞大)无法使用整合市面上那些较新的技术框架,只能使用基础的java工具
这里的接口是一个模块 是webservice的
外部系统调用这个接口 重复写入 数据出现重复单据.故对此问题进行解决.
分析:
1.外部系统短时多次提交重复数据
2.接口系统业务复杂 处理数据用时过长,导致数据积压 .数据脏读.
/*** 产成品入库单* author Administrator**/
public class GetIcFinprodin {private static final Integer JP 127;//同步对象标识public String getExecute(String operation,String orderform){String resultstrnull; if (operation.equals(Insert)){//插入resultstr insert(operation, orderform);}return resultstr;}/*** 插入 * param operation* param orderform* return*/public String insert(String operation,String orderform){Boolean flag true;//默认通过synchronized(JP) {//通过mes单据号查询单据是否存在 不存在就可以插入否则返回已插入提示if(StringUtils.isNotBlank(vdef1) ){try {BaseDAO bd new BaseDAO();String vbillcodeExist (String)bd.executeQuery(select vbillcode from ic_finprodin_h where vdef1 vdef1, new ColumnProcessor());if(StringUtils.isNotBlank(vbillcodeExist)){flag false;//已存在不允许重复插入}} catch (DAOException e) {e.printStackTrace();}}if(flag){//业务....耗时代码段 SGetXChangeService gtxchangeservicenew GetXChangeService();Object ovbillcode ;JSONObject backinfojsongtxchangeservice.getXChangeservice(xml_sb.toString());if(backinfojson.getString($successful).equals(Y)){String pkbackinfojson.getJSONObject(sendresult).getString(content);BaseDAO bd new BaseDAO();try {//获取插入的订单单号 ovbillcode bd.executeQuery(select vbillcode from ic_finprodin_h where cgeneralhid pk, new ColumnProcessor());backinfojson.put($vbillcode, ovbillcode);} catch (Exception e) {e.printStackTrace();}//业务.-...耗时代码段 E }else if(backinfojson.getString($successful).equals(N)) {backinfojson.put($vbillcode,ovbillcode);}return backinfojson.toJSONString();}else{JSONObject backinfojson new JSONObject();backinfojson.put($successful, Y);backinfojson.put(sendresult, vdef1 MES单据已存在,单据已插入成功!);return backinfojson.toJSONString();} }}}JP 标识使用 基本类型 或String 类型(注意不能new 这里是java基础的东西,可了解一下 ) 作为同一对象 保证线程同步 有兴趣的可以把 127 改成128 试试效果 估计你能找到答案 同步之后性能会下降,做个取舍吧.