【发布时间】:2020-12-15 23:54:34
【问题描述】:
如果我必须在 Orleans 一组 Grains 后面的持久层上执行操作,我如何确保受影响的 Grains 可以针对更新的数据重新激活?
我的示例是我在 Employee 记录级别有一个grain(EmployeeID 作为 Grain ID),我需要对一些记录执行批量操作。显然,重要的是我确保在此操作后谷物重新加载到那里。
我创建了一个带有谷物的奥尔良筒仓来执行各种操作,包括员工更换。我正在使用如下 GetGrain 功能
var employeeGrain = _clusterClient.GetGrain<IEmployeeGrain>(employeeId, "employee");
根据标准奥尔良生命周期,该颗粒在使用时将保持活动状态。我的问题是,如果我故意执行更改基础数据的操作,我该如何触发受影响的颗粒重新激活?
您似乎可以强制停用单个颗粒
this.DeactivateOnIdle()
但是,如果我做一个更大的操作,我想避免按粒料做吗?我想理想情况下回收特定类型的所有谷物。
【问题讨论】:
-
乔恩,欢迎来到 SO。您能否详细说明您已经尝试过的内容以及无效的内容?