数据同步
API Hook配置同步(数据库->缓存)
用户调用API修改parse库配置后,通API Hook同步到ets缓存,例如通道中做如下处理
%% 初始化池子
handle_init(State) ->
shuwa_parse:subscribe(<<"Device">>, post),
shuwa_parse:subscribe(<<"Device/*">>, post),
{ok, State}.
handle_message({sync_parse, Args}, State) ->
%% do something
lager:info("sync_parse ~p", [Args]),
{ok, State};
Livequery同步(数据库->缓存)
parse库修改同步到ets缓存
parse开启livequery
编辑
vim /data/shuwa_parse_server/script/config.json
修改 app 下 liveQuery 添加需要同步的表
登录获取SessionToken
shuwa_parse_handler:login_by_account(UserName, Password).
{ok,#{<<"sessionToken">> => <<"r:af99fafcfebbcfe04770e74ca2646b11">>}}
shuwa_livequery订阅Device表
shuwa_livequery:subscribe(<<"r:af99fafcfebbcfe04770e74ca2646b11">>, <<"Device">>, #{}),
handle_info({livequery, #{<<"object">> := Object}}, #task{step = login} = State) ->
{noreply, do_depploy(Object, State)};
handle_info({livequery, _Other}, State) ->
{noreply, State};
API Hook同步数据(数据库+缓存 ->用户)
用户查询parse库后返回过程中,DG-IOT自动同步ets缓存中的实时状态数据,解决状态不同步问题,
开源代码下载:https://gitee.com/dgiiot/dgiot
有问反馈给我们 https://gitee.com/dgiiot/dgiot/issues
商务合作vx:dgiotcs
QQ支持一群:346566935