在做一个 pos 系统,订单实时通知如何处理?

152 天前
 whatsupbitch
目前想到的是 轮询? websocket ? see? 各有利弊
不知道业界通用的方案是什么。
服务端使用 Django 开发。
客户端使用 Flutter ,用于 Android Pad 和 iPad 。
1904 次点击
所在节点    Python
13 条回复
zxkxhnqwe123
152 天前
任务系统
keakon
152 天前
友情提醒,最好换个框架,不然每秒几十个订单可能就扛不住了。

然后通知是什么场景呢?用户刷卡时,pos 机发到 server 端,处理完通知么?这个不是秒级就完成了么,还需要轮询?
linhua
152 天前
非 web 端 mqtt ,web 端 mqtt+websocket
或者其他 pub/sub 模型的 比如 redis stream ,redis stream 是 at-least-once
whatsupbitch
152 天前
@zxkxhnqwe123 celery + websocket?
whatsupbitch
152 天前
@keakon 谢谢,描述错误了,是收银系统。小程序或者点餐完成后,通知系统打印小票。开始用户不会太多,想先快速实现。后期用户多了准备用.net 把面 c 端的重构一下。
whatsupbitch
152 天前
@linhua 谢谢,研究研究。
xiaocaiji111
152 天前
websocket ,我之前做新零售,这么搞得。现在近 3 万家门店用,没得遇到特别得问题。
julyclyde
152 天前
这种低频应用,随便写写就好了
你系统处理能力再快,瓶颈也都在食客和厨房,而不是在 POS
tomczhen
152 天前
纯看 Web 处理能力,正常部署 Django 跑个 3000qps 没啥问题啊,怎么能得到每秒几十个订单就扛不住的结论?
samnya
152 天前
小系统轮询简单啊,websocket 需要处理断开重连,重连期间错过了消息也要主动去获取。或者直接 socket.io 之类的方案
janus77
152 天前
丢 redis 事件消费呗
imokkkk
152 天前
看实时性要求高不高,不高的话定时轮询就行,否则就 websocket ,但复杂很多
ytll21
152 天前
@whatsupbitch #5 小程序或者点餐完成后,通知系统打印小票。
--------------------------------------------
为什么需要通知系统?待打印的订单都在数据库中,系统每 1 秒查询下数据库中未打印的订单,拉出来打印就行了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1054731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX