영구 서비스로 Raku Cro 앱 실행


11

프론트 엔드 웹 서버 뒤에서 perl6 / raku Cro 앱을 서비스로 실행하고 싶습니다.

cro runsegfaults 및 재부팅 후 실행 만으로는 재시작을 처리 할 수 ​​없습니다.

이전에는 perl5에서는 FastCGI를 사용했지만 Cro::HTTP::Server' Cro::HTTP::Server.new().start()Idioom은 FastCGI :: Native'의 while $fcgi.accept() {}예 와 호환되지 않습니다 .

service.p6의해 생성 된 핸들러가 있지만 서비스 에서이를 가리킬만큼 충분한 지 확실 cro stub하지 않습니다.SIGINTsystemctl

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

사람들이 현재 Cro 앱을 어떻게 호스팅하고 있습니까?

답변:


12

cro run 배포 도구가 아닌 개발 도구로 사용되므로 실제로 서비스를 호스팅하기에 적합하지 않습니다.

내가 직접 처리하는 모든 Cro 서비스는 컨테이너화 되고 (여기에 대한 지침 ) 호스트 된 Kubernetes 클러스터에서 실행됩니다. Kubernetes는 자동 재시작, 새 버전 출시 등을 처리합니다. docker-composeKubernetes 대신 사용되는 것도 알고 있습니다. Kubernetes는 기본적으로 개발 도구라고도 생각합니다.

systemctl항상 다시 시작하도록 구성된 경우 서비스로 설정해도 정상적으로 작동합니다. 그러나, 보인다 당신이 처리하는 것SIGTERM 일 대신에 완전히 종료에 대한 SIGINT(모두 처리와 아무것도 잘못).

또한 Cro 앞에 프론트 엔드 웹 서버를 배치하고 (아파치를 사용하지만 nginx도 훌륭한 선택입니다) 정적 콘텐츠를 캐싱하는데도 사용합니다 ( content-control내 경로에서 캐시 기능 을 설명하는 데 사용).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.