我们有一台设备安装在商家店门口,用户通过设备下单到商家平台,然后商家那边订单状态大约有10种,不确定订单状态的更新时间。
1.下单接口(下单成功只返回用户手机号,一个手机号可以下很多单)
2.订单当前状态接口(通过手机号查询,返回当前手机号所有未完成订单的当前状态,已完成的不返回。如果所有订单完成,那么这个接口就会返回空)。
获取所有下单手机号,对应的订单每个时间段的状态信息,并存储。
通过动态添加Timer方式,查询下单后传递过来的手机号对应的所有当前订单状态。
但是由于数据量大(3000个客户端),创建太多的timer,而且每次传递的手机号可能已经在timer中查询。
小白请教各位大佬有没有更好的方案?
把手机号丢到队列里,队列多线程执行,每个线程批量一些手机号,比如线程1是1~10 线程2是11~20,然后自己循环着玩,这个手机号操作完再塞到队列里等下一次执行
大致思路,具体细节需要自行优化
每个线程处理一定个数的手机号,如果没有订单就丢弃该手机号,似乎其他逻辑跟用timer一样,无非换成队列
定时任务或者队列,你只有两个接口,也没啥别的玩法
用Linux自带的crontab,一分钟一次,不一定非要用Webman的Timer
当然你如果要记录订单的每一次状态变更时间,那就当我没说,我这个不适合