gpt4 book ai didi

persistent-storage - 奥尔良 - 批量数据导入

转载 作者:行者123 更新时间:2023-12-02 20:37:07 31 4
gpt4 key购买 nike

我目前正在为我们的组织了解 MS Orleans。据我了解,只要所有数据库更新都通过 Grains 进行,Orleans Grains 就会与数据库保持同步。

但是如果有一些批量处理过程(例如数据文件的处理)更新/插入/删除数据库中的记录,会发生什么?

奥尔良是否有一些流程或模式可以满足这个需求?或者我们是否需要通过 Grains 处理所有批量过程?如果我们通过grain处理批量操作 - 我们是否通过更新每个grain来进行处理(如果每个grain将自身更新到数据库中,这似乎非常昂贵),或者是否有一些批量模式可以用来强制所有受影响的grain“刷新”? p>

答案可能是显而易见的。我在文档中没有找到有关这些场景的任何内容。

我们将使用 Orleans 作为带有 MS-SQL 服务器的本地安装。

编辑:

我指的是更新N粒数据的过程。对于 sql 来说,更新 1000 条记录的单个调用比更新一条记录的 1000 次调用要好得多。一个具体的例子是库存更新:每个产品库存都是一粒 Cereal 。每隔 15 分钟左右,第三方就会收到一份文件,通知应用程序之外发生的库存数量变化。这应该在数据库中更新并反射(reflect)在颗粒中。文件可能有 10k 条记录...

最佳答案

您有几个选择。

1)通过grains上传——grains将缓存数据并存储在数据库中。这部分违背了您高效数据库上传的目标,因此可能不是您想要的。

2)直接批量上传到数据库,但使用grain来访问和处理/提供数据。颗粒将在第一次请求时从数据库读取数据,缓存它,为进一步的请求提供服务。此外,所有 future 的数据更新都将通过grains进行。这通常是最常见的模式。

3) 如果您还需要定期数据处理,即使没有服务请求,那么在批量上传grain后,您可以“批量踢”grain来开始定期处理。在此选项中,您将编写一个 Controller 循环(例如客户端逻辑),它只会将“Init”调用到一组颗粒中,一个接一个(但并行:并行调用 X (X ~ 100) 上的 Init 并等待它们全部在一起),然后进行下一批。 Grains 将在初始化时启动计时器或提醒。

关于persistent-storage - 奥尔良 - 批量数据导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46813965/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com