1.情景描述:
现在本地数据库需要与药房数据库同步库存(字段)信息,实现方式是调用药房的接口获得单一药品的库存。
2.解决方案:
定时任务时间,如果几分钟(例如:2分钟)同步一次,我查询本地数据库遍历每条记录调接口,更新每条记录。
3.问题:
本地数据库几万条数据,同时取出操作内存肯定会爆掉,而且2分钟还没同步完,又重新执行怎么办?
有点模糊的思路,分块取,例如每次取100条进行更新。怎么设计,测试才能达到一个比较好的效果呢?
PHP中文网2017-05-16 13:08:33
没有太明白需求,只能给个参考:
一、如果有权限修改药房数据库的话:
直接在药房数据库添加一个触发器,当库存修改的时候,
主动同步到本地(前提是本地要做映射,也就是可以在外面访问)。
二、如果是无权修改药房数据库:
其实是不需要,每隔2分钟去同步一次的。本地在展示的时候,比如,
一页展示10个产品,那在取数据时候,数据的库存字段是去药房取,
而其它字段在本地取(远程取来的时候,做一个本地缓存,防止多从访问去远程取多次)
我想大声告诉你2017-05-16 13:08:33
楼主先确认一下,通过接口调用单一药品的库存,你2分钟能全部查完吗,如果能,如此频繁的io操作不如先用Redis保存,然后再做个定时任务后面插入到数据库里。