Tomcat Parallel Deployment ยกเลิกการปรับใช้แอปพลิเคชันเก่าโดยอัตโนมัติ


10

ฉันใช้ Tomcat 8's Parallel Deployment เป็นส่วนหนึ่งของการตั้งค่าการปรับใช้อย่างต่อเนื่องแบบไม่ต้องหยุดทำงานมาระยะหนึ่งแล้ว

เมื่อทดสอบ gauntlet แล้วเซิร์ฟเวอร์ CI จะเปลี่ยนชื่อไฟล์. war เป็น application ## {version-number} .war โดยอัตโนมัติและคัดลอกสงครามไปยังโฟลเดอร์ / webapp แอปพลิเคชัน ## 333 จะอยู่ร่วมกับแอปพลิเคชัน ## 332 ได้เป็นอย่างดี

ปัญหาเดียวที่ฉันพบคือฉันต้องยกเลิกการปรับใช้แอปพลิเคชันรุ่นเก่าด้วยตนเองเมื่อการรับส่งข้อมูลทั้งหมด (เซสชันใหม่) ได้เปลี่ยนไปเป็นแอปใหม่โดยอัตโนมัติ

Tomcat มีกลไกที่มีอยู่แล้วภายในหรือไม่สำหรับพูดว่า "เฮ้เมื่อบริการนี้ลดลงเหลือศูนย์อีกครั้งควรลบออก" หรือไม่? บางทีเหตุการณ์ "เซสชันล่าสุดเพิ่งหมดอายุ" บางอย่างที่ฉันสามารถแตะเข้าไปได้

หากคนอื่นมีการยกเลิกการปรับใช้แอปพลิเคชันประเภทนี้โดยอัตโนมัติฉันชอบที่จะได้ยินเกี่ยวกับมัน ขอบคุณ!

คำตอบ:


9

คุณสามารถกำหนดค่า Tomcat เพื่อลบแอปพลิเคชันเก่า คุณจำเป็นต้องเพิ่มundeployOldVersionsแอตทริบิวต์กับองค์ประกอบและตั้งค่าให้Host trueคุณจะต้องแก้ไขโฮสต์ของคุณใน server.xml ให้เป็นดังนี้:

<Host undeployOldVersions="true" ...>
   ...
</Host>

ดูเอกสารโฮสต์สำหรับรายละเอียด โดยเฉพาะใช้งานได้เฉพาะเมื่อเปิดใช้งานการปรับใช้อัตโนมัติ


คุณกำลังใช้ Tomcat เวอร์ชันใดอยู่ ฉันมี Tomcat 8.5.6 และใช้ไม่ได้ ฉันเปิดใช้งาน FarmWarDeployer แล้วและมีการเปิดตัวรุ่นใหม่โดยอัตโนมัติ อย่างไรก็ตามหลังจากเปิดใช้งาน undeployOldVersions บนแท็กโฮสต์ไฟล์สงครามรุ่นเก่า (และการปรับใช้) จะไม่ถูกลบ
Piko

มีความคืบหน้าเกี่ยวกับเรื่องนี้กับ Tomcat 8 ไหม?
JimmyD

1
คุณลักษณะนี้ใช้งานกับ Tomcat 8 หากคุณพบปัญหาเมื่อใช้ FarmWarDeployer จากนั้นเปิดบั๊กพร้อมขั้นตอนในการสร้างซ้ำ
มาร์คโทมัส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.