我有列表(如果这是唯一的方法,它可以是一个集合)。我连接了许多客户端,列表将一次一个地填写在外部。
我需要一种有效的方法将 N 项目作为批处理从一个列表中取出到一个客户端中。我不关心它最终会在哪个客户端,只是推入列表的第一个 N 项最终会有一个客户端,而下一个 N 可能会结束另一个(或相同)。
我真的不确定如何通过列表实现这一点,我可以阻止pop,但一次只能阻止一个。我真的更喜欢列表中的排序。
我以为我可以使用套装,让所有客户都用SCARD击中Redis。当他们检测到count为=>时,SPOP为N.这应该让我至少有一个充满N的客户端,并且每个接收少于N的客户端都会将它们返回给该集合。
我重复SCARD的事实感觉非常糟糕,并且让事情变得不可靠。
是否有更多的东西可以支持这种流程,或者更干净的算法(理想情况下有一个列表?)