การตรวจสอบคำขอและการตอบกลับของลูกค้า Jetty

ฉันมีข้อกำหนดในการนับธุรกรรมท่าเทียบเรือและวัดเวลาที่ใช้ในการประมวลผลคำขอและรับการตอบกลับโดยใช้ JMX สำหรับระบบการตรวจสอบของเรา

ฉันใช้ Jetty 8.1.7 และดูเหมือนจะไม่สามารถหาวิธีที่เหมาะสมในการทำเช่นนี้ได้ โดยทั่วไปฉันต้องระบุเมื่อมีการส่งคำขอ (เนื่องจากวิธี Jetty Async สิ่งนี้จะถูกทริกเกอร์จากเธรด A) และเมื่อการตอบสนองเสร็จสมบูรณ์ (เนื่องจาก oncompleteResponse เสร็จสิ้นในเธรดอื่น)

ฉันมักจะใช้ ThreadLocal สำหรับสถานะดังกล่าวในด้านอื่น ๆ ที่ฉันต้องการฟังก์ชันที่คล้ายกัน แต่เห็นได้ชัดว่านี่ใช้ไม่ได้ที่นี่

มีความคิดใดบ้างที่จะเอาชนะ?


person YaOg    schedule 16.01.2013    source แหล่งที่มา


คำตอบ (1)


หากต้องการใช้คำขอ async ของ Jetty คุณต้องซับคลาส ContentExchange และแทนที่วิธีการของมัน ดังนั้นคุณสามารถเพิ่มฟิลด์พิเศษลงไปซึ่งจะมีการประทับเวลาเมื่อมีการส่งคำขอ และใช้ในภายหลังในเมธอด onResponseComplete() ของคุณเพื่อวัดเวลาในการประมวลผล หากคุณต้องการทราบเวลาที่คำขอของคุณถูกส่งไปยังเซิร์ฟเวอร์จริง ๆ แทนที่จะเป็นเวลาที่ถูกสร้างขึ้น คุณสามารถแทนที่เมธอด onRequestCommission() และ onRequestComplete() ได้

person Andrew Sokolov    schedule 22.02.2013