我有一个工作服务,它将使用 Cv2 Dnn 执行图像处理。它经过优化以使用所有可用的 CPU,并且运行它的多个实例会降低性能。虽然它运行速度非常快,但如果同时添加两个图像,可能会导致 Dnn 崩溃。
出于这些原因,我希望有一个后台工作人员按顺序从队列中读取数据。所有传入请求都会将其图像添加到此队列并等待结果。
我希望实现的工作流程:
到目前为止,我已经看到了很多将项目推送到队列进行处理的方法,基本上都是“即发即忘”,但没有介绍如何等待项目完成处理。例如,在 Microsoft 关于带有托管服务的后台任务的文档中,他们的排队后台任务示例只是将多个任务推送到队列,然后在添加任务时读取服务,但调用代码不会等待待完成的任务