我尝试使用 Cro 创建一个将在 rabbitMQ 中发布消息的 Rest API。我想将我的路线分成不同的模块,并用“包含”组合它们。但我也希望能够在每个模块中共享与 rabbitMQ 的相同连接。我尝试使用“我们的”,但它不起作用:
文件 1:
unit module XXX::YYY;
use Cro::HTTP::Router;
use Cro::HTTP::Server;
use Cro::HTTP::Log::File;
use XXX::YYY::Route1;
use Net::AMQP;
our $rabbitConnection is export = Net::AMQP.new;
await $rabbitConnection.connect;
my $application = route {
include <api v1 run> => run-routes;
}
...
文件 2:
unit module XXX::YYY::Route1;
use UUID;
use Cro::HTTP::Router;
use JSON::Fast;
use Net::AMQP;
my $channel = $XXX::YYY::rabbitConnection.open-channel().result;
$channel.declare-queue("test_task", durable=> True );
sub run-routes() is export { ... }
错误信息:
===SORRY!===
No such method 'open-channel' for invocant of type 'Any'
谢谢!