繁体   English   中英

nodeJS中的作业队列

[英]job queue in nodeJS

我正在一个个人项目中,我想自动执行TA分配系统。 我想为此使用Node和MongoDB。 尽管我对MongoDB有所了解,但我是NodeJS的新手。 开脱的目的是做这样的事情:

  1. 学校管理员提交他/她想为其租用TA的课程。
  2. 该数据库已经装有合格的学生(两名以上)。 每个学生的assoc字段为[学生ID,年长(大二,初中,高中),是否参加课程,年级,presentStatus(Avlbl /已雇用)]
  3. 在任何时候,学校管理员都会要求提供课程的助教,他会获得数据库中最资深的合格学生。
  4. 分配学生后,其状态将更改为“已雇用”。

我打算使用队列来实现。 (将该课程中所有可用的学生存储在队列中,并将TA船分配给队列前面的高级学生)。 一旦为他/她分配了TA,就会将其从队列中删除,并以PresentStatus作为“已雇用”的状态将其推回到数据库中。 我面临的问题是,我无法理解如何使用NodeJS实现队列的功能。 在研究此方法的过程中,我发现了与monq和博客相关的一些内容,他们讨论了如何使用Kue(由Redis支持)实现该想法,但是我仍然无法想象应该如何使用队列中的队列来实现该想法。 NodeJS。 任何帮助,将不胜感激。

RabbitMQ是您正在寻找的选项。

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

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

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM