node.js中的作业队列

我正在寻找一个可以被php调用的node.js中的作业队列pipe理器。 这是一个Web应用程序,需要发送电子邮件,创buildPDF文件等,我想进行asynchronous的PHP进程。

过程示例:

  1. 用户请求一个php页面
  2. Php调用作业队列pipe理器并添加一个任务
  3. 任务是在node.js中asynchronous执行的php,最好是稍微安静些
  4. 任务是执行一个PHP脚本

为什么这个“复杂”的系统?

  1. 我们用PHP(Zend Framework)编写我们所有的Web应用程序,
  2. 我们想开始学习node.js
  3. 我们需要一个asynchronous过程(快速响应!)
  4. “真正”的任务应该是一个PHP脚本,以利用已经写好的PHP类,以方便地访问数据库连接,尽可能多的DRY

这个系统的用例:

  1. 用户自行注册,系统会发送欢迎邮件
  2. 用户完成电子商务订单,系统将发送发票

最后,我们还想使用node-cron来执行非系统范围的cron任务(非常特定于应用程序)。 Node-cron将调用作业队列pipe理器,后者将运行一个php脚本。

节点中是否有这样的应用程序?

一个可能的select是使用Redis的节点作业 。

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

Interesting Posts