gpt4 book ai didi

raku - "Cro Endpoint HTTP"应该在哪里定义?

转载 作者:行者123 更新时间:2023-12-04 14:54:13 28 4
gpt4 key购买 nike

控制台在启动 cro ('cro run') 后显示此消息:

▶ Starting JoanPujol (JoanPujol)
🔌 **Endpoint HTTP will be at http://localhost:20000/**
📓 JoanPujol Listening at http://localhost:3000
📓 JoanPujol Shutting down...
♻ Restarting JoanPujol (JoanPujol)
📓 JoanPujol Listening at http://localhost:3000

我无法弄清楚“端点 HTTP”的定义位置。这是我的 ' 服务.p6 ':
use Cro::HTTP::Log::File;
use Cro::HTTP::Server;
use Routes;

constant HOST = 'localhost';
constant PORT = 3000;

my Cro::Service $http = Cro::HTTP::Server.new(
:http<1.1>,
host => HOST,
port => PORT,
application => routes(),
after => [
Cro::HTTP::Log::File.new(logs => $*OUT, errors => %*ERR)
]
);
$http.start;
say "Listening at http://{HOST}:{PORT}";
react {
whenever signal(SIGINT) {
say "Shutting down...";
$http.stop;
done;
}
}

谢谢!

最佳答案

cro开发工具会自动为要求运行的每个服务中的每个端点选择一个空闲端口。当有多个服务并且它们之间指定了链接时,它还会通过环境变量将选定的端口注入(inject)到依赖的服务中。这使得设置一组服务成为可能,这些服务可以通过环境变量配置其端口,然后拥有cro run。为它们中的每一个分配一个端口并传播该信息,以便服务可以相互通信。

该消息指示自动选择了哪个端口号。但是,由于服务脚本无论如何都会覆盖这些脚本,因此它没有任何效果。要禁用此功能并删除该消息,remove the endpoint list entry in the .cro.yml file .

如果希望将端口硬编码到服务脚本中,那么使用 constant 声明它们可能更容易。而不是使用%*ENV .

关于raku - "Cro Endpoint HTTP"应该在哪里定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51226908/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com