0

我在 Ruby 1.9 中使用 redis gem

是否可以在 Redis.pipelined 中捕获 Redis 异常以确保批处理的其余部分也被执行?

我试过 redis.pipelined do begin redis.hGet ... rescue Redis::ComandError ... end end 但rescue代码永远不会被执行。

4

1 回答 1

0

Multi 似乎与流水线的工作方式相似,只是每个操作都是原子的。我的“aaa”键被设置了,即使 smembers 导致抛出异常。我知道这不是您正在寻找的,因为您无法处理块内的异常。

#> $redis.multi do
*>   $redis.set "asdf", 1
*>   $redis.smembers "asdf"
*>   $redis.set "aaa", 2
*> end  
于 2012-11-28T11:56:05.970 回答