我正在使用thrift_client 0.8.1 library。它支持一些钩子接口。
client = ThriftClient.new(FooService, host)
client.add_callback :before_method do |*args|
ActionController::Base.logger.info instance_eval("@current_server")
logger.info args.inspect
end
client.add_callback :post_connect do |client|
logger.info "A thrift server connection has been made<#{client.current_server}>"
end
每次调用方法时,我都想写日志服务器的信息。
所以我安装了一个:before method
钩子,但我认为instance_eval("@current_server")
不能像我预期的那样工作。 @current_server
是ThriftClient
类中的实例变量。有什么问题?
答案 0 :(得分:0)
我不相信在ThriftClient实例上下文中调用:before_method回调。这是调用:before_method:
def do_callbacks(callback_type_sym, *args)
return unless @callbacks[callback_type_sym]
@callbacks[callback_type_sym].each do |callback|
callback.call(*args)
end
end
使用方法名称调用before_method CB。对于:post_connect,它是客户端实例。