高效的作业调度算法

时间:2015-09-08 02:35:35

标签: algorithm job-scheduling

我托管视频编码服务。我的客户提交一些视频进行编码。目前,我只是以FIFO方式对它们进行编码。我想改变它,以便每个客户都能获得我的服务费用。

我想考虑以下因素:

1. FIFO - 首先提交作业具有更高的优先级。
2.如果客户提交了大量视频,我想优先考虑。

我可以通过设置数据库中的属性来控制客户端的优先级,但不能通过每个视频来控制客户端的优先级。 如何更好地控制所有视频并有效安排它们?

PS:如果需要,我可以重新设计数据库。

2 个答案:

答案 0 :(得分:0)

这是一种对客户公平的方法:不是将作业排队,而是将提交作业的客户端排入FIFO。当每个客户端到达队列的前端时,编码他们的第一个作业,如果该客户端有更多的作业,则将该客户端放回队列中。

答案 1 :(得分:0)

您可以计算编码成本(基于大小和/或质量),并将其除以请求的年龄(当前时间减去发出请求的时间加上一些阻尼常数)。 然后,您将使用此分数按递增顺序对请求进行排队。

排队大请求的客户端必须等待处理较小的请求,但最终会得到足够小的分数来安排。