我们有一个图像处理工作流程产品。通过我们在作业中的处理,通常可以运行 10,000->100,000 张图像。可能有不止一项工作待定。
目前,所有的图像处理都是在我们的自制图像库中执行的,这是一个托管的 C++ 库,与 .NET 兼容。它在用户的应用程序空间中运行。我的意思是,如果您以“PeteSmith”身份登录,图像将在 Pete Smiths 的帐户上运行。
目前,我们一次只允许这种图像处理的一个实例。客户要求我们提供一个新版本,一个允许多个实例同时运行的版本,所以我们现在正在研究如何做到这一点的问题。
从“用户帐户”获取处理并使用“系统帐户”在后台进行处理的想法很有吸引力。它很有吸引力,因为 Windows 服务自然地由操作系统事件管理,例如登录和注销以及其他系统资源使用事件警报。
在我看来,我们需要做的只是管理少量定义明确的事件,这些事件由 Microsoft 详细记录。这一切都很好。但我需要了解的是,从我们客户的角度来看,我们的图像处理代码的服务植入对性能意味着什么。在他们看来,他们需要处理得更多、更快。
问题我应该如何考虑权衡:
1) 使用服务运行作业与运行仅在 Pete Smith(用户)帐户上运行的软件的 N 个不同“实例”?
2) 与运行仅在 Pete Smith(用户)帐户上运行的软件的 N 个不同“实例”相比,允许 N 个服务运行 N 个不同的作业(不需要串扰)?