1. Description du scénario?:
La base de données locale doit désormais synchroniser les informations d'inventaire (champ) avec la base de données de la pharmacie. La fa?on d'y parvenir est d'appeler l'interface de la pharmacie pour obtenir l'inventaire d'un seul médicament.
2. Solution?:
Temps de tache planifié, si la synchronisation se produit toutes les quelques minutes (par exemple?: 2?minutes), j'interroge la base de données locale pour parcourir chaque enregistrement et ajuster l'interface pour mettre à jour chaque enregistrement.
3. Question?:
Il y a des dizaines de milliers de données dans la base de données locale. Si la mémoire d'opération est supprimée en même temps, elle va définitivement exploser. De plus, la synchronisation n'a pas été terminée en 2 minutes. . Que dois-je faire si je le réexécute ?
C'est une idée un peu vague, prenez-la en morceaux, par exemple, prenez 100 éléments à la fois pour mettre à jour. Comment concevoir et tester pour obtenir de meilleurs résultats ?
小伙看你根骨奇佳,潛力無限,來學(xué)PHP伐。
Je ne comprends pas très bien les exigences, je ne peux donc vous donner qu'une référence?:
1. Si vous avez l'autorisation de modifier la base de données de la pharmacie :
直接在藥房數(shù)據(jù)庫添加一個(gè)觸發(fā)器,當(dāng)庫存修改的時(shí)候,
主動(dòng)同步到本地(前提是本地要做映射,也就是可以在外面訪問)。
2. Si vous n'avez pas le droit de modifier la base de données de la pharmacie :
其實(shí)是不需要,每隔2分鐘去同步一次的。本地在展示的時(shí)候,比如,
一頁展示10個(gè)產(chǎn)品,那在取數(shù)據(jù)時(shí)候,數(shù)據(jù)的庫存字段是去藥房取,
而其它字段在本地?。ㄟh(yuǎn)程取來的時(shí)候,做一個(gè)本地緩存,防止多從訪問去遠(yuǎn)程取多次)
L'auteur confirme d'abord qu'en appelant l'inventaire d'un seul médicament via l'interface, peut-on tout vérifier en 2 minutes ? Si c'est le cas, il est préférable d'utiliser Redis pour enregistrer d'abord des opérations d'IO aussi fréquentes, puis d'effectuer une tache planifiée ? et insérez-le dans la base de données plus tard.