我正在学习Microsoft Orleans,我想知道如何最好地处理我们的场景之一。我们将拥有一个接收请求的REST服务,该请求最终将导致在外部系统中创建一条新记录。此记录将具有长ID值。然后,我们将此Id返回给调用者。
对此场景的建议是什么?应该有一个无状态的粒度来处理调用外部系统和获取Id。我认为这个“工厂”颗粒将创建具有id的颗粒,并为该颗粒提供初始信息(这样它就不必从外部存储中检索数据)。但是,我不希望它在第一次激活时尝试从外部存储中读取此信息。
有没有关于如何使用Microsoft Orleans grains来处理这个问题的建议?
发布于 2016-09-03 08:37:50
这取决于您希望如何处理此记录中的数据。但一般来说,听起来你的服务应该调用一个常规的粒度(而不是无状态的工人粒度),并使用长id值作为粒度主键(没有“创建”粒度这回事,你只是通过引用调用它,它将被自动实例化)。然后,颗粒可以从外部存储中读取数据,或者显式地传递该数据的某些部分。然后,如果您需要从内存中为有关此数据的未来请求提供服务,您只需将它们定向到此谷粒,它将为它们提供服务。如果该数据是可变的,该颗粒还可以周期性地(或根据某些外部消息)决定刷新/使该数据无效。
https://stackoverflow.com/questions/39301977
复制相似问题