1.情境描述:現在本地資料庫需要與藥房資料庫同步庫存(字段)資訊,實現方式是調用藥房的介面取得單一藥品的庫存。 2.解決方案:定時任務時間,如果幾分鐘(例如:2分鐘)同步一次,我查詢本地資料庫遍歷每筆記錄調接口,更新每筆記錄。 3.問題:本地資料庫數萬條數據,同時取出操作記憶體一定會爆掉,而且2分鐘還沒同步完,又重新執行怎麼辦?
有點模糊的思路,分塊取,例如每次取100條更新。怎麼設計,測驗才能達到比較好的效果呢?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
沒有太明白需求,只能給個參考:
一、如果有權限修改藥局資料庫的話:
直接在药房数据库添加一个触发器,当库存修改的时候, 主动同步到本地(前提是本地要做映射,也就是可以在外面访问)。
二、如果是無權修改藥局資料庫:
其实是不需要,每隔2分钟去同步一次的。本地在展示的时候,比如, 一页展示10个产品,那在取数据时候,数据的库存字段是去药房取, 而其它字段在本地取(远程取来的时候,做一个本地缓存,防止多从访问去远程取多次)
樓主先確認一下,透過介面呼叫單一藥品的庫存,你2分鐘能全部查完嗎,如果能,如此頻繁的io操作不如先用Redis保存,然後再做個定時任務後面插入到資料庫裡。
沒有太明白需求,只能給個參考:
一、如果有權限修改藥局資料庫的話:
二、如果是無權修改藥局資料庫:
樓主先確認一下,透過介面呼叫單一藥品的庫存,你2分鐘能全部查完嗎,如果能,如此頻繁的io操作不如先用Redis保存,然後再做個定時任務後面插入到資料庫裡。