เรียกใช้แอป Raku Cro เป็นบริการแบบถาวร


11

ฉันต้องการเรียกใช้แอป Cro ที่ perl6 / raku เป็นบริการหลังเว็บเซิร์ฟเวอร์ส่วนหน้า

เพียงแค่เรียกใช้cro runจะไม่จัดการกับการเริ่มต้นใหม่หลังจาก segfaults และเริ่มต้นใหม่

ก่อนหน้านี้กับ Perl5 ฉัน FastCGI มือสอง - แต่Cro::HTTP::Server's Cro::HTTP::Server.new().start()สำนวนดูไม่เข้ากันได้กับ FastCGI :: พื้นเมืองของwhile $fcgi.accept() {}ตัวอย่าง

service.p6สร้างขึ้นโดยcro stubจะมีSIGINTการจัดการอย่างไรฉันไม่แน่ใจว่าเรื่องนี้จะเพียงพอที่จะชี้ไปไว้ในsystemctlการให้บริการเช่น

[Service]
ExecStart = /path/to/service.p6

ขณะนี้ผู้คนเป็นเจ้าภาพแอพ Cro?

คำตอบ:


12

cro run มีไว้เพื่อเป็นเครื่องมือในการพัฒนาไม่ใช่สำหรับการปรับใช้และไม่ใช่ทางเลือกที่ดีสำหรับการโฮสต์บริการ

บริการ Cro ทั้งหมดที่ฉันดูแลโดยตรงจะถูกบรรจุ ( คำแนะนำบางอย่างเกี่ยวกับเรื่องนี้ ) จากนั้นเรียกใช้บนคลัสเตอร์ Kubernetes ที่โฮสต์ Kubernetes ดูแลการรีสตาร์ทอัตโนมัติเปิดตัวเวอร์ชั่นใหม่ ฯลฯ ฉันยังตระหนักถึงdocker-composeการใช้งานแทน Kubernetes ซึ่งฉันเดาว่ามันใช้งานได้ แต่ฉันเชื่อว่านี่ก็เป็นเครื่องมือในการพัฒนาเช่นกัน

การตั้งค่าเป็นsystemctlบริการควรทำงานได้ดีหากมีการกำหนดค่าให้รีสตาร์ทเสมอ อย่างไรก็ตามดูเหมือนว่าคุณต้องการจัดการSIGTERMเพื่อให้การปิดระบบใหม่ทั้งหมดทำงานแทนSIGINT(ไม่มีอะไรผิดปกติในการจัดการกับทั้งคู่)

ฉันยังวางส่วนหน้าเว็บเซิร์ฟเวอร์ไว้หน้า Cro (โดยใช้ Apache แม้ว่า nginx จะเป็นตัวเลือกที่ดีเช่นกัน) และใช้เพื่อทำแคชเนื้อหาคงที่เช่นcontent-controlกัน

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