我想在前端Web服务器后面运行perl6 / raku Cro应用程序作为服务。
cro runsegfaults和重新启动后,仅运行将无法处理重新启动。
以前,在perl5中我使用过FastCGI-但是Cro::HTTP::Server的Cro::HTTP::Server.new().start()习惯用法似乎与FastCGI :: Native的while $fcgi.accept() {}示例不兼容。
由service.p6生成的cro stub确实具有SIGINT处理程序,但是我不确定这是否足以在systemctl服务中指向它,即
[Service]
ExecStart = /path/to/service.p6
Run Code Online (Sandbox Code Playgroud)
人们目前如何托管Cro应用程序?
我正在尝试创建一个到RPC服务器的Perl 6客户端接口,类层次结构与服务器URL匹配.例如
# for url path: /account/login
# client code:
$client.account.login;
Run Code Online (Sandbox Code Playgroud)
为此,"子"对象(帐户)需要存储对其父对象(客户端)的引用.
这就是我尝试过的:
#!/usr/bin/env perl6
use v6;
class MyApp::Client::Account {
has $!client;
method login() {
# fake login
$!client.session_id = 'abc';
return 'ok';
}
}
class MyApp::Client {
has $.session_id is rw;
method account() {
state $empire = MyApp::Client::Account.new( :client(self) );
return $empire;
}
}
use Test;
plan( 2 );
my $client = MyApp::Client.new;
my $response = $client.account.login;
is( $response, 'ok', 'login successful' );
ok( $client.session_id, 'client has session_id' ); …Run Code Online (Sandbox Code Playgroud)