注文したアイテムのセットを保存するために redis を使用しています。サンプルコードは次のとおりです。
object Producer{
def main(args:Array[String]){
val jedis = new Jedis("localhost")
for (i<-1 to 10){
println("publishing:"+(i))
jedis.lpush("q1",i.toString)
}
}
}
object Consumer {
def main(args:Array[String]){
val jedis = new Jedis("localhost")
while(true){
while(jedis.llen("q1")>0){
val msg=jedis.lpop("q1")
println("processing:"+msg)
}
}
}
}
プロデューサーを実行すると、
publishing:1
publishing:2
publishing:3
publishing:4
publishing:5
publishing:6
publishing:7
publishing:8
publishing:9
publishing:10
コンシューマーを実行すると、
processing:1
processing:2
processing:4
processing:5
processing:6
processing:7
processing:9
processing:10
processing:8
processing:3
アイテムの順序が正しくないのはなぜですか。これは実際には FIFO ではありません。