大佬们,订单超时提醒的话用定时器还是长链接

jxm1995

提醒的话是推送给负责人的,告诉他哪些用户的订单超时了。不是推给用户。之前想用轮询做但是被boss驳回了

2849 2 0
2个回答

静默

定时器和长连接是不冲突,可以一起用的。
我们有类似的业务,用的是workerman的web-msg-sender,直接调用curl就推送过去了,贼简单。
用crontab 运行php脚本,每分钟跑一次数据库,超时的直接curl调用 web-msg-sender推过去

  • jxm1995 2018-12-21

    这样的话数据库不会炸掉吗,我们数据库十万多条订单信息。。只需要拿到数据的话是不是写个定时器定时查询就可以了呢

  • 静默 2018-12-21

    1分钟查一次数据库怎么会炸,而且超时订单肯定都是有索引的,查一次就炸了谁还用数据库

phpcreeper

参考思路:
首先定时器和长连接确实没什么直接的关系,根据你描述的场景,至少有两个关注点:
1、提醒是发给负责人的,那么也没有维持长连接的必要,虽说负责人可能数量不多,毕竟占着长连接资源也是对资源的消耗,执行调度时直接发给负责人即可,不过这也得看你们具体通知方式。
2、数据量比较大,定时轮询数据库性能肯定低下, 可以考虑使用redis的 zset 来搞, 比如score用订单的时间来权重,时间由近及远扫描,这样可以保证每个订单只需扫描一次,也可以避免反复轮询数据库【另外还可以扩展思路,比如配合多进程,并行的处理多个切分的 zset】。

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