代码之家  ›  专栏  ›  技术社区  ›  abhishek

如何为多租户应用程序共享和缓存dll

  •  0
  • abhishek  · 技术社区  · 5 年前

    我有一个应用程序可以执行以下操作:

    1. 创建用于在API接收到处理请求时执行进程的AppDomain。
    2. 加载在服务结构应用程序上执行某些任务所需的一组dll。
    3. 在应用程序域中执行整个过程。
    4. 卸载AppDomain并返回响应。

    现在有一些场景,

    • 在大多数情况下,用户的dll是相同的。例如,当应用程序为每个租户执行某些默认工作时,dll将特定于该工作,但也有一个为每个租户添加自定义工作的规定,这些租户可以使用自己的自定义工作。

    • 不同租户使用同一dll的多个版本。

    现在对于这个应用程序,当我们通过appdomain容器不断加载和卸载dll时,api的执行速度非常慢。另外,即使应用程序工作得很好,使用的资源也没有优化。(我们在内存和计算上付出了更多的代价,却没有获得性能)。

    所以我需要一些选择来优化这个。

    1. 我们可以使用类似于数据缓存的Dll缓存吗 dll只加载一次,但是当来自多个用户的请求时,我们可以 创建类的实例并调用资源?
    2. 加载新的自定义dll时,将为该特定的 不影响他人的租户。

    请建议在这些情况下,您可以有哪些最佳选择。

    0 回复  |  直到 5 年前