首先,假设这样的场景:
{ Queue1: [taskA1, taskA2, taskA3, ... ] }
{ Queue2: [taskB1, taskB2, ... ] }
...
{ QueueN: [taskN1, ... ] }
这些队列包含不同数量的任务,其中任务是动态推送的。
其次,我们有一个用户列表:
[ user1, user2, user3, ... ]
不同的用户拥有不同的队列权限,例如:
{ user1: { Queue1, Queue2, ... } }
{ user2: { Queue1 } }
{ ... }
第三,有条件:
这是我们遇到的一个真正的问题,当我们的系统首次上线时,获取任务所需的时间不超过50毫秒。但随着用户和队列的增长,系统响应时间已增加到数百毫秒。我们尝试使用BitSet进行优化,但只有50%的性能得到了改善。
所以也许StackOverflow会有最终答案。