通过workerman如何获取订单所有状态?

小W

一、项目情况:

我们有一台设备安装在商家店门口,用户通过设备下单到商家平台,然后商家那边订单状态大约有10种,不确定订单状态的更新时间。

二、商家提供的接口:

1.下单接口(下单成功只返回用户手机号,一个手机号可以下很多单)

2.订单当前状态接口(通过手机号查询,返回当前手机号所有未完成订单的当前状态,已完成的不返回。如果所有订单完成,那么这个接口就会返回空)。

三、要实现的功能

获取所有下单手机号,对应的订单每个时间段的状态信息,并存储。

四、目前解决方案

通过动态添加Timer方式,查询下单后传递过来的手机号对应的所有当前订单状态。
但是由于数据量大(3000个客户端),创建太多的timer,而且每次传递的手机号可能已经在timer中查询。

小白请教各位大佬有没有更好的方案?

792 2 0
2个回答

powerbowen

把手机号丢到队列里,队列多线程执行,每个线程批量一些手机号,比如线程1是1~10 线程2是11~20,然后自己循环着玩,这个手机号操作完再塞到队列里等下一次执行

大致思路,具体细节需要自行优化

  • 小W 2022-11-21

    每个线程处理一定个数的手机号,如果没有订单就丢弃该手机号,似乎其他逻辑跟用timer一样,无非换成队列

  • powerbowen 2022-11-22

    定时任务或者队列,你只有两个接口,也没啥别的玩法

nitron

用Linux自带的crontab,一分钟一次,不一定非要用Webman的Timer
当然你如果要记录订单的每一次状态变更时间,那就当我没说,我这个不适合

  • 暂无评论
年代过于久远,无法发表回答
🔝