pc 端可以维护基础数据,如果基础数据发生变化,需要通过消息的方式提示安卓调用数据同步接口,请问有什么好的解决方案
1
guxingke 2019-09-10 16:56:03 +08:00
1. 轮询, 实时性要求不高的情况下, 可以考虑 APP 每分钟进行数据同步.
2. 消息通知 - websocket 长连接. - 第三方 push 消息透传 - 第三方 IM 自定义消息. |
2
HansCathy 2019-09-10 16:59:14 +08:00
PC 端数据变化 写入消息队列( kafka 等),安卓端消费 kafka 数据,更新基础数据
楼主说的那种 耦合对太高了,PC 端数据变化 还要通知安卓端,安卓端再调用 PC 端接口去同步 |
3
LaughingCat OP 轮休调用的方法不太 ok,因为基础数据的数据量在很大的情况下,这种频繁的调用太慢,而且很多时候没意义。我的想法是 将基础数据报错到 redis 缓存中,一旦有基础数据改动就修改缓存中的值。安卓通过长连的方式与 redis 进行“长连”不知道这种方式对不对。
|
4
wengang285 2019-09-10 17:17:01 +08:00
@LaughingCat PC 端的数据,是你自己更新还是别的系统?如果是自己的系统,那么更改完之后,通知 andoird 来拉取就可以了,如果不是别的系统更新,那就比较麻烦了
|
5
cshlxm 2019-09-10 17:19:16 +08:00
数据变动推送一条消息到 mq,推送系统消费 mq 里的消息,给安卓推送一条消息,后台服务接收推送消息,进行数据处理,如果是前端,就是 websocket~ 维持长连接,不过不太可靠,应该有 livequery 之类组件~
|
6
opengps 2019-09-10 22:38:26 +08:00
消息通知,我每次回复都是这句话:要么客户端轮训,要么长连接推送。
还写了文章用来粘贴: https://www.opengps.cn/Blog/View.aspx?id=427 |