我正在开发一个应用程序,其中数千个任务与数百个设备相关联,每个任务需要 < 5 毫秒才能开始执行,平均需要 100 毫秒才能完成。
条件如下:
- 每个设备一次只能处理一个任务,例如,一个任务必须在其分配的设备上完成运行,然后才能处理后续任务。
- 调度程序应该是高效的。目前,处理给定设备的工作队列所花费的时间比其任务的总和要长。
以下是当前实现的基本描述:
每个设备都包含一个工作队列,其中填充了与该设备相关的任务。
当一个任务入队时,该设备的工作队列被放入一个全局运行队列(一个队列的队列)。全局运行队列由一个工作线程消耗,该线程将设备的任务对象出列,处理一个,然后将设备队列放在全局运行队列的后面。当该给定设备再次出列时,工作线程检查任务是否已完成,如果已完成,则执行下一个任务。此过程继续进行,直到所有设备队列都已耗尽全局运行队列中的任务。
有什么改进建议吗?我说清楚了吗?如果没有,请告诉我,我会尽力澄清。
感谢您抽出宝贵时间查看此内容。问候。