लगातार सेवा के रूप में एक Raku Cro ऐप चलाना


11

मैं एक दृश्य वेबसर्वर के पीछे एक सेवा के रूप में एक perl6 / raku Cro ऐप चलाना चाहता हूं।

बस चलाने cro runसे segfaults और रिबूट के बाद पुनरारंभ करने से निपटने नहीं होगा।

पहले perl5 के साथ मैंने FastCGI का उपयोग किया है - हालांकि Cro::HTTP::Server, Cro::HTTP::Server.new().start()मुहावरे FastCGI के साथ संगत नहीं दिखता है :: मूलनिवासी का while $fcgi.accept() {}उदाहरण।

service.p6द्वारा उत्पन्न cro stubएक है SIGINTहैंडलर, हालांकि मैं अनिश्चित हूँ कि क्या यह एक में इसे करने के लिए बात करने के लिए पर्याप्त है systemctlसेवा, यानी

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

वर्तमान में लोग क्रो ऐप कैसे होस्ट कर रहे हैं?

जवाबों:


12

cro run एक विकास उपकरण के रूप में इरादा है, एक परिनियोजन नहीं है, और इसलिए वास्तव में सेवाओं की मेजबानी के लिए एक अच्छा विकल्प नहीं है।

सभी क्राउन सेवाएं जो मैं सीधे ध्यान रखता हूं, वे कंटेनरीकृत हैं ( उस पर कुछ मार्गदर्शन ) और फिर एक होस्ट किए गए कुबेरनेट्स क्लस्टर पर चलते हैं। कुबेरनेट्स स्वचालित पुनरारंभ की देखभाल करता है, नए संस्करणों को बाहर करना आदि, मैं docker-composeकुबरनेट्स के स्थान पर उपयोग किए जाने के बारे में भी जानता हूं, जो मुझे लगता है कि काम करता है, हालांकि मेरा मानना ​​है कि इसे मुख्य रूप से एक विकास उपकरण भी माना जाता है।

इसे एक systemctlसेवा के रूप में स्थापित करना भी ठीक काम करना चाहिए, बशर्ते कि उसे हमेशा पुनरारंभ करने के लिए कॉन्फ़िगर किया गया हो। हालाँकि, ऐसा लगता है कि आपSIGTERM इसके बजाय काम करने के लिए स्वच्छ शटडाउन को संभालना चाहते हैंSIGINT (दोनों को संभालने में कुछ भी गलत नहीं है)।

मैं क्रो के सामने एक फ्रंटेंड वेब सर्वर भी content-controlरखता हूं (Apache का उपयोग करके, हालांकि nginx भी एक अच्छा विकल्प होगा), और यह भी उपयोग करें कि स्थैतिक सामग्री के कुछ कैशिंग भी करें ( कैचैबिलिटी का वर्णन करने के लिए मेरे मार्गों का उपयोग करके )।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.