单服务器防止生成重复订单的方法

涉及到取餐号的问题,每个商家都有相对应的取餐号,这时候很难用 blockqueue来实现,想了很多办法,首先做测试,生成一堆订单。,然后批量改变订单状态。

class ThreadTest implements Runnable{

private String testString;
public ThreadTest(String test){
testString = test;
}

/**
* 重写(Override)run()方法 JVM会自动调用该方法
*/
public void run() {
String token = "token=18f78d796311bd38&";
String uri="http://localhost:8080/noodle/payOrderStatus.json?"+token+"orderid="+testString+"&orderstatus=1";
try{
HttpClient httpClient=new DefaultHttpClient();

HttpGet httpGet = new HttpGet(uri);
HttpResponse resp=httpClient.execute(httpGet);

if(resp.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
BufferedReader reader=new BufferedReader(
new InputStreamReader(resp.getEntity().getContent())
);
StringBuffer result=new StringBuffer();
String inputLine=null;
while((inputLine=reader.readLine())!=null){
result.append(inputLine);
}
System.out.println(result.toString());
ResultModel<List<OrderDetail>> test = JSON.parseObject(result.toString(),new TypeReference<ResultModel<List<OrderDetail>>>(){});
System.out.println(test.getCode());
OrderDetail orderDetail = test.getData().get(0);
System.out.println(orderDetail.getDishtype());
}

}catch(Exception e){
System.out.println(e.getMessage());
}
}
}

使用线程池来模拟
不用sychronized就会是有重复的数据产生,如果加上则不会产生重复数据,达到预期效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值