我正在尝试从 DailyMed API 获取药物名称。 但该 API 仅支持每个请求的最大
100
结果,目前总元素计数超过 97k 条记录。
我不是在寻找代码,而是一个可以帮助我构建 API 来达到目的的设计:我需要每天从 DailyMed API 获取所有记录(Az 计时器触发器)并将它们更新到我的 SqlDb/Redis 缓存 (尚未实施).
我计划保持并行 for
循环中的 Get
调用,并将数据附加到ConcurrentBag 或 dictionary 中(根据诊断结果,我将选择 1),然后我必须更新 SQL表和带有最新记录的 Redis 缓存 - 为此,我计划将最新记录存储在临时数据库表中,然后编写一个 SP 来验证记录是否存在(添加或更新操作 - 无删除操作)或覆盖原始表使用新数据进行批量更新本身但是使用这种方法我觉得我过度设计了东西。此外,如果我覆盖现有表,这会引入新的复杂性,例如如果同时读取表会怎样,最重要的是,我不想丢失旧数据;如果第二天没有某些药物,我只想将其存档(将 isActive 设置为
false
)。请让我知道这个问题陈述的更好方法/设计。
PS:
我使用 Redis,因为 Redis 可以轻松保存一百万条记录,并且有一个过期时间,这对我的用例很有帮助。我使用 SQL 作为后备机制
开始
dailymed_main
dailymed_temp
populate()
delta()
synch()
Redis
delete()