Microsoft Orleans 每个筒仓的最大颗粒数

Tel*_*ian 2 configuration distributed-computing orleans

我正在测试Microsoft Orleans作为分布式计算框架的可行性。似乎它可以工作,但是我想知道如何设置给定筒仓中的最大活动颗粒数?

我的谷物不会纯粹受 CPU 限制,而是会执行一些 IO 和其他相关任务。我担心如果我让它疯狂运行,它会启动大量实例,这会使整个事情陷入困境。

像这样的筒仓配置可能吗?

Reu*_*ond 6

Orleans 非常适合非 CPU 密集型工作。Orleans 谷物旨在Task<T>用于异步而不是线程,因此您应该始终使用 C# 的 [async/await][1] 功能执行异步 IO。

如果您绝对需要执行阻塞 IO,则可以在 Grain 上下文之外执行 IO,并await在您的 Grain 中执行结果,如下所示:

var result = await Task.Run(() => {
  // Perform blocking work.
  return 43;
});
Run Code Online (Sandbox Code Playgroud)