nodeJS

时间:2017-02-27 04:04:01

标签: node.js mongodb

我正在开展个人项目,我希望自动化TA分配系统。我想为此使用Node和MongoDB。虽然我对MongoDB有所了解,但我是NodeJS的新手。该项目的目的是做这样的事情:

  1. 学校管理员提交他/她想要雇用TA的课程。
  2. 数据库已填入符合条件的学生(超过两名)。与每个学生相关的领域是[学生证,Seniorty(大二,大三,大四),课程是否取得,成绩,现在状态(Avlbl / Hired)]
  3. 在任何时候,学校管理员都要求获得TA课程,他会获得数据库中最资深的合格学生。
  4. 分配学生后,他的状态将更改为“已聘用”。
  5. 我计划使用队列来实现它。 (将该课程中的所有可用学生存储在队列中,并将TA-ship分配给队列前面的高年级学生)。一旦他/她被分配了TA,他们就会从队列中删除并推回到数据库中,并将PresentStatus作为“Hired”。我面临的问题是,我无法理解如何使用NodeJS实现队列的功能。在我研究这种方法的过程中,我发现了一些与monq和博客相关的内容,他们已经讨论过用Kue实现它(由Redis支持),但我仍然无法想象如何使用队列实现这个想法。的NodeJS。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

RabbitMQ是您正在寻找的选项。

您必须创建邮件发件人和邮件使用者。消费者将拥有相应的队列。一旦队列中充满了消息,消费者就会抓住它并进行处理。在您的方案中,它会检查学生的状态,然后将他/她更改为在您的数据库中受雇。您的发件人所做的是将学生的信息打包并将其放入消费者的队列中。我可以想象你的情况会发生什么:一个学生在他/她身边提交请求。 node.js api接收它并打包信息。然后它将它发送到您的客户队列。如果客户免费,您的客户将对其进行处理。如果它很忙,信息将在队列中等待。我建议你为学生使用json'不同组件必须通信时的信息。

以下是RabbitMQ的官方网站:https://www.rabbitmq.com/getstarted.html

希望它有所帮助。