Perl,PHP,Python中的消息队列

时间:2011-03-30 04:54:13

标签: php perl message-queue

我正在处理一个包含消息队列概念的项目。现在该项目采用PHP,并且在邮件发送或邮件发送方面造成更多延迟。所以我建议用Perl或Python脚本开发一个消息队列。你能否建议PHP或Perl或Python哪个最好?

3 个答案:

答案 0 :(得分:6)

可能的解决方案是将Gearman用作队列:

  • 您的PHP项目会向Gearman发送消息,作为后台作业;
  • Gearman会将这些消息发送给工作人员
  • 工人将处理工作 - 做可能需要时间的事情

另一个优势:当您需要多台服务器来处理大量工作时,您已经拥有了所需的东西:Gearman将为您处理负载平衡。

答案 1 :(得分:2)

PHP非常适合实现简单的消息队列。因此,如果您当前的代码导致延迟,那么这是因为您的设计,而不是因为PHP的某些限制。切换到其他语言不会对您有所帮助。糟糕的代码是错误的代码,无论语言如何。

您可以做的最好的事情是使用现有的消息队列。 Pascal建议Gearman。我曾与Beanstalkd合作过(并且非常喜欢)。如果您需要一定量的功能,请查看ApacheMQRabbitMQ

那就是说,如果你坚持实现自己的消息队列,我建议坚持使用PHP。这样您就可以重用现有应用程序中的代码(例如,重新使用您的模型和数据库API)。

答案 2 :(得分:1)

以下是gearman的两种选择

一个。 Beanstalkd 湾MemcacheQ

MemcacheQ http://memcachedb.org/memcacheq/
需要使用代码手动完成从队列添加和提取。 它不像你发送它到队列,MemcacheQ将逐个执行它。 但它非常快。

Beanstalkd http://kr.github.com/beanstalkd/download.html
它支持多种语言。