编程语言
首页 > 编程语言> > Java EE的公平任务队列

Java EE的公平任务队列

作者:互联网

我打算提供一种服务,使人们可以向系统提交任务(特别是转码任务),他们应该尽快得到服务,但同时也不应使其他任何人饿死,即必须公平.如果一个人提交了2000个任务,那么系统不应该一直只满足他的要求,而应该在其他人的请求中进行轮循或类似的工作…

有没有可用的解决方案?我查看了RabbitMQ和其他消息传递系统,但它们并不能完全解决我的问题.公平任务队列如何实施?

解决方法:

我会这样实现:

在队列上有一个队列侦听器,当消息到达时,队列侦听器会检查上次收到给定用户的任务的时间;如果时间<如果时间小于1秒,则将其放入队列1.如果时间小于10秒,请在队列2中放置10秒.在队列3上放置100秒,在队列4上放置100秒.然后,在将要处理任务的4个队列上有侦听器. 当然,您可以更改队列数并更改时间以匹配最佳吞吐量.理想情况下,您希望队列一直都忙.

标签:java,algorithm,java-ee
来源: https://codeday.me/bug/20191209/2095942.html