
复制require redis require securerandom require msgpack class RedisRpcClient def initialize(redis_url,通过 list_name) @client = Redis.connect(url: redis_url) @list_name = list_name.to_s end def method_missing(name, *args) request = { jsonrpc => 2.0, method => name, params => args, id => SecureRandom.uuid } @client.lpush(@list_name, request.to_msgpack) channel, response = @client.brpop(request[id], timeout=30) MessagePack.unpack(response)[result] end end client = RedisRpcClient.new(redis://localhost:6379, :fib) (1..30).each { |i| puts client.fib(i) } 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.