我需要计算码头事务并测量处理请求所花费的时间,并使用JMX为我们的监控系统取回响应。
我正在使用Jetty 8.1.7,我似乎找不到合适的方法来做到这一点。我基本上需要确定何时发送请求(由于Jetty Async方法是从线程A触发)以及响应何时完成(因为oncompleteResponse在另一个线程中完成)。
我通常在其他需要类似功能的区域使用ThreadLocal来处理这种状态,但显然这在这里不起作用。
任何想法如何克服?
答案 0 :(得分:0)
要使用jetty的异步请求,您基本上必须继承ContentExchange并覆盖其方法。因此,您可以向其中添加一个额外的字段,其中包含发送请求的时间戳,稍后在onResponseComplete()方法中使用它来测量处理时间。如果您需要知道请求实际发送到服务器的时间而不是创建它的时间,您可以覆盖onRequestCommitted()和onRequestComplete()方法。