有人可以推荐一个适用于Perl的异步消息队列。
我并不感兴趣它是纯粹是用perl编写的,如果它是用其他东西编写的(c二进制等)并且只有一个perl客户端就没问题。
我正在寻找的一些指导方针: - 轻量级,资源不太重。 - 最少量的依赖(我不想为了让它运行而安装大量的库)。 - 它需要适合企业使用,并有一个社区+文档,我可以得到支持。
答案 0 :(得分:2)
对于类似的事情(入队,流程,发送电子邮件),我正在使用IPC::DirQueue。
我之所以选择它是因为:
简单入队脚本
use 5.014;
use warnings;
use IPC::DirQueue;
my $dq = IPC::DirQueue->new({ dir => "./qq" });
foreach my $n (1..10) {
$dq->enqueue_string("some string $n");
}
和简单的出队
use 5.014;
use warnings;
use IPC::DirQueue;
use Path::Tiny;
my $dq = IPC::DirQueue->new({ dir => "./qq" });
while(my $job = $dq->wait_for_queued_job(0, 2) ) {
my $content = path($job->get_data_path())->slurp;
say $content;
$job->finish();
}
类似的模块是Directory::Queue。
通常......你的里程...... :)也许一些更有经验的perl开发人员会建议你一个更好的解决方案。
答案 1 :(得分:2)
您可以将Gearman用于消息队列;然后,您可以使用Net::Async::Gearman
完全异步地与它进行对话,既可以作为客户端(提交作业),也可以作为工作者(执行它们)。