我在Ruby 1.9中使用redis gem
是否有可能在Redis.pipelined中捕获Redis异常以确保批处理的其余部分也被执行?
我试过了
redis.pipelined做
开始
redis.hGet ...
救援Redis :: ComandError
...
结束
结束
但rescue
代码永远不会被执行。
答案 0 :(得分:0)
Multi似乎与pipelined类似,除了每个操作都是原子的。我的“aaa”键被设置,即使是嗅觉引起异常被抛出。我知道这不是你想要的,因为你无法处理块内的异常。
#> $redis.multi do
*> $redis.set "asdf", 1
*> $redis.smembers "asdf"
*> $redis.set "aaa", 2
*> end