如果我必须对奥尔良 Grains 集后面的持久层执行操作,如何确保受影响的 Grains 可以根据更新的数据重新激活?
我的示例是,我有一个 Employee 记录级别的 Grain(EmployeeID 作为 Grain ID),我需要对某些记录执行批量操作。显然,重要的是我确保在此操作后谷物重新加载到该状态。
我创建了一个奥尔良粮仓,用于执行各种操作,包括员工变更操作。我正在使用 GetGrain 功能,如下所示
var employeeGrain = _clusterClient.GetGrain<IEmployeeGrain>(employeeId, "employee");
Run Code Online (Sandbox Code Playgroud)
该颗粒在根据标准奥尔良生命周期使用时将保持活跃状态。我的问题是,如果我故意执行更改基础数据的操作,如何触发受影响的颗粒重新激活?
看来你可以强制单个颗粒停用
this.DeactivateOnIdle()
Run Code Online (Sandbox Code Playgroud)
但是,如果我进行更大的操作,我想避免对每粒颗粒都这样做吗?我想理想情况下回收特定类型的所有谷物。