java redis订单_java redis做app后台 怎么实现多人抢单

在Java JFinal项目中,利用Redis作为后台缓存处理订单抢单的高并发问题。当用户点击抢单时,将订单ID存入Redis队列。然而,现有代码存在并发漏洞,允许同一用户多次抢单。寻求解决多并发下订单状态同步及用户接单次数限制的方法。
摘要由CSDN通过智能技术生成

java jfinal和redis作为后台。

具体流程是:

app端:

app有信息展示,用户选择一条信息进入详细,然后点击抢单按钮,这时携带2个id参数发送给后台

后台:

根据2个id,修改订单表的状态和用户的接单数

现在考虑高并发的问题,该怎么使用redis的队列呢?

我试过使用redis 在创建订单时把订单id存入redis

@ActionKey("/order/create")

public void order_create(){

Order order = Order.dao.order_create(map);

JSONObject jsonObject = new JSONObject();

jsonObject.put("rs", order.result);

jsonObject.put("msg", StateDict.dataBaseMsg(order.result));

Cache c = Redis.use("order");

c.rpush("orderlist", order.id);

renderJson(jsonObject);

}

然后在app点击抢单按钮时读取redis

@ActionKey("/order/take")

public void order_take(){

Integer id = getParaToInt(0);

Integer uid = getParaToI

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值