首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Perl异步消息队列

Perl异步消息队列
EN

Stack Overflow用户
提问于 2014-08-11 15:40:50
回答 2查看 528关注 0票数 1

请有人推荐一个与Perl兼容的异步消息队列。

我并不担心它是否纯粹是用perl编写的,如果它是用其他东西(c二进制等)编写的,并且只有一个perl客户端,那就没问题了。

我正在寻找的一些指导方针:-轻量级的,不要太重的资源。-最低限度的依赖项(我不想安装大量的库来运行它)。-它需要适合于企业使用,并有一个community+docs,在那里我可以得到支持。

  • 为了设置一些上下文,我正在通知催化剂应用程序中的许多人,我谨慎地避免同时从应用程序发送过多的电子邮件,因此我打算使用异步队列来处理电子邮件发送,然后希望不会降低用户体验。
EN

回答 2

Stack Overflow用户

发布于 2014-08-11 16:24:05

对于类似的事情(排队、处理、发送邮件),我正在使用IPC:DirQueue

我选择它是因为:

  • 它使用原子文件操作,因此不需要数据库。
  • 可以有多个队列进程。
  • 以及多个脱队列进程(在相同的FIFO类队列上)

简单队列脚本

代码语言:javascript
运行
复制
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");
}

和简单的排队

代码语言:javascript
运行
复制
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();
}

类似的模块是目录::队列

像往常一样..。也许一些更有经验的perl开发人员会推荐给您一个更好的解决方案。

票数 2
EN

Stack Overflow用户

发布于 2014-08-11 18:01:07

您可能可以对消息队列使用Gearman;然后可以使用Net::Async::Gearman作为客户机(提交作业)和工作人员(执行作业)完全异步地与其进行对话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25247144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档