node.js中的作业队列

时间:2011-09-12 06:43:29

标签: php zend-framework node.js queue job-queue

我在node.js中寻找一个可以由php调用的作业队列管理器。这是一个需要发送电子邮件,创建pdf文件等的Web应用程序,我想要执行php进程的异步操作。

过程示例:

  1. 用户请求php页面
  2. Php调用作业队列管理器并添加任务
  3. 任务在node.js中以异步方式执行,最好是在安静的时候
  4. 任务是执行php脚本
  5. 为什么这个“复杂”系统?

    1. 我们用php(Zend Framework)
    2. 编写所有的web应用程序
    3. 我们想开始学习node.js
    4. 我们需要一个异步过程(快速响应!)
    5. “真实”任务也应该是一个php脚本,利用已经编写的php类,可以轻松访问数据库连接并尽可能地干燥
    6. 此系统的使用案例:

      1. 用户注册自己,系统会发送欢迎电子邮件
      2. 用户完成电子商务订单,系统将发送发票
      3. 最后,我们还想使用node-cron来执行非系统范围的cron任务(非常特定于应用程序)。 Node-cron将调用作业队列管理器,随后将运行php脚本。

        节点中是否已存在此类应用程序?

2 个答案:

答案 0 :(得分:2)

在这种情况下,我更喜欢像RabbitMQ这样的消息队列以及node-amqpphp-amqp等客户端库。然后只需从队列中的PHP脚本发送作业,让nodejs从队列中获取作业。它的一大优点是可扩展,并在企业市场中得到广泛使用和测试。

答案 1 :(得分:0)

一个可能的选项是node-jobs,它使用Redis。