作为永久服务运行Raku Cro应用


11

我想在前端Web服务器后面运行perl6 / raku Cro应用程序作为服务。

cro runsegfaults和重新启动后,仅运行将无法处理重新启动。

以前,在perl5中我使用过FastCGI-但是Cro::HTTP::ServerCro::HTTP::Server.new().start()习惯用法似乎与FastCGI :: Native的while $fcgi.accept() {}示例不兼容。

service.p6所产生cro stub确实有一个SIGINT处理程序,但我不能确定这是否足以指向它的systemctl服务,也就是

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

人们目前如何托管Cro应用程序?

Answers:


12

cro run 旨在用作开发工具,而不是部署工具,因此,对于托管服务而言,确实不是一个好的选择。

我直接处理的所有Cro服务都经过容器化(此处提供了一些指导),然后在托管的Kubernetes集群上运行。Kubernetes负责自动重启,推出新版本等。我还知道docker-compose可以使用Kubernetes代替Kubernetes,尽管我相信它也主要被认为是一种开发工具,但我认为它可以起作用。

如果将其systemctl配置为始终重新启动,则将其设置为服务也应该可以正常工作。但是,似乎您想处理SIGTERM干净关闭而不是工作SIGINT(处理这两个都没错)。

我也确实在Cro的前面放置了一个前端Web服务器(使用Apache,尽管nginx也是一个不错的选择),并且还使用它来对静态内容进行一些缓存(content-control在我的路由中描述可访问性)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.