智慧停车(五) 车主入场出场主流程

2019-07-15 15:10:23

在经过反复讨论后,初版流程确定如下:

1.车主通过微信公众号地图查看空位并导航到目的地,车位空闲状态下挡板默认下降,车主可自由驶入车位。

2.车位装置检测到车辆入场,通过物联网平台会上报信息到软件后台,后台会将此车位状态更新为占用(待用)并记录入场时间。

3.车在入场过程中会不断调整位置,直到车停固定后,这个时候语音会提示相关信息,并上报信息到后台,这个时间点即为免费开始停车时间并生成待支付订单,并将此车位状态更新为占用(计费)并记录计费时间。

4.后台根据每个车位的免费停车时间(根据运营策略每个车位停车时间不一样)计算,当免费时间结束的时候,会通过物联网平台下发升挡板的指令,车位的挡板这个时候会升起,并上报信息到后台,这个时间点即为开始收费时间。

5.车主要从车位驶出的时候,需要通过微信公众号里面扫码缴费扫码二维码,这个时候后台会计算此订单明细,在有效的时候内车主确定后点支付,支持成功,提示相关信息。

6.微信支付回调收到微信支付成功消息后,会通过物联网平台下发下降挡板指令,车位的挡板这个时候会下降。

车主入场出场整体流程.png

这个流程在讨论中有个地方一直有争议,就是车主入场的时候免费时间段到底由设备端来计算还是后台来计算,之前是想入场时间免费时间开始由设备端来处理,设备端来计算 免费时间结束,当免费时间结束后,升起挡板,这个时候上报信息到后台,而不是由后台来计算免费时间到再来通知设备端升挡板,再由设备端来上报信息计费开始。后面考虑 到2个问题。 

1.设备端能不能计算这个时间?定时任务? 

2.关于免费时间策略每个车位可能不一样,也就是说当后面车位免费时间策略在后台改变的时候需要下发指令同步信息到设备端,当然设备端每次在上线的时候也会去拉一次。

其实这个计算免费时间如果在后台做的话从逻辑上来讲是完全ok的,那么后台需要通过一些方式去计算。陈工之前的公司是这样做的,就是后台启定时调度去轮询所有设备,计算时间差来确定免费是否到时候,当时听到这个方案的时候心里有点打颤,几百个设备还无所谓,如果几十万几百万个设备以上通过定时调度来做是否会存在很大的问题?其实定时调度轮询需要解决2个问题。

1.调度的时间频率能不能在时间内完成这一波任务,这边的频率肯定是1秒钟轮询一次。

2.调度轮询肯定有时间差,可能几秒也可能10几秒。

当然调度轮询也可以不断的去优化,比如调度轮询的数据库可以放在分布式缓存redis去加快速度,还有调度轮询的粒度可以更小,比如可以拆分几个甚至十几个调度任务,每个任务去处理一批数据,这些都是可以去做。

我当时在想,互联网电商项目里面经常有抢购活动,如果抢购后不付款,几分钟后这个商品就会释放也就是回仓,还有就是网上买高铁票也是一样的道理,难道这种项目都是通过轮询机制?能不能把订单放到一个地方,时间到的时候自动去通知或者做处理?

(微信打赏)

(支付宝打赏)
原创不易,谢谢赞赏。你的支持就是我的动力,我会更加努力。
  1. 2020-03-26 15:06:42

    延时队列

  2. 2019-07-16 17:51:22

    逻辑思维很清晰,大局观很强啊

业务场景如下:车位挡板默认为下降状态,车子初次入场的时候,数据库记录入场时间,这个时间就是免费时间的开始,各个城市各个路段的免费时间策略也不一样,比如在某个地段设置免费时间为10分钟,后台计算当到了10分钟后,会发送指令让挡板上升,这个时间就是收费时间的开始。

1核2G1M40G盘,89元/1年,2核4G3M40G盘,799元/3年,2核8G5M40G盘,1399元/3年,新老用户都支持。

阿里云产品1888元服务器代金券大礼包免费领取。

阿里云服务器低门槛上云捷径,普惠上云,云服务器1核1G仅需293元/年。

企业级高性能实例,限时2-5折,限首次购买ECS用户参与,限购4台。

腾讯云代金券新用户满200减150 满500减375 满1000减750 满2000减1500。

腾讯云服务器,数据库热卖云产品3折起,爆品低至1折。

腾讯云业界领先的性价比,0.57元/天起,关注最新活动,免费体验产品。