资讯专栏INFORMATION COLUMN

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

seanHai / 1812人阅读

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

涉及到取餐号的问题,每个商家都有相对应的取餐号,这时候很难用 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> test = JSON.parseObject(result.toString(),new TypeReference>>(){});
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就会是有重复的数据产生,如果加上则不会产生重复数据,达到预期效果。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/65471.html

相关文章

  • 如果连铁将军都不再可靠--记一次排查使用分布式轮候锁+SESSION防订重复仍然加锁失效问题经历

    摘要:尽可能地将数据写入,例如创建设置的都会将数据立即的写入再来看看文档怎么描述的看看这可爱的默认值我们终于知道了当我们不做任何设置时,默认采用的是方式显而易见,使用方式能最大限度的减少与的交互,而在大多数场景下都是没有问题的。 0.问题背景 此次问题源于一次挺严重的生产事故:客户的订单被重复生成了,而出问题的代码其实很简单: // .... redisLockUtil.lock(membe...

    econi 评论0 收藏0
  • 微信支付服务端开发总结

    摘要:前言最近应公司业务需求,把微信支付完成了,当然已经顺利上线。第三步查询订单该接口提供所有微信支付订单的查询,商户可以通过该接口主动查询订单状态,完成下一步的业务逻辑。 前言 最近应公司业务需求,把微信支付完成了,当然已经顺利上线。但是开发的过程是也是踩了很多坑,下面我就先说说开发流程,以及在开发中遇到的大大小小的坑。 开发流程 首先,看一下微信开方平台关于支付的一个时序图,如下: sh...

    马忠志 评论0 收藏0
  • 浅析微信支付:支付结果通知

    摘要:本文是浅析微信支付系列文章的第六篇,主要讲解支付成功后,微信回调商户支付结果通知的处理。微信支付支付回调接口该链接是通过统一下单中提交的参数设置,如果链接无法访问,商户将无法接收到微信通知。 本文是【浅析微信支付】系列文章的第六篇,主要讲解支付成功后,微信回调商户支付结果通知的处理。 浅析微信支付系列已经更新五篇了哟~,没有看过的朋友们可以看一下哦。 浅析微信支付:统一下单接口 浅析...

    Dean 评论0 收藏0
  • 浅析微信支付:查询订和关闭订

    摘要:本文是浅析微信支付系列文章的第七篇,主要讲解微信商户平台的订单查询和关闭接口的使用。查询订单以下为微信官方的查询订单文档应用场景该接口提供所有微信支付订单的查询,商户可以通过查询订单接口主动查询订单状态,完成下一步的业务逻辑。 本文是【浅析微信支付】系列文章的第七篇,主要讲解微信商户平台的订单查询和关闭接口的使用。 浅析微信支付系列已经更新六篇了哟~,没有看过的朋友们可以看一下哦。 ...

    Dean 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<