Reputation: 173
I am working on a personal project where I want to automate the TA assignment system. I want to use Node and MongoDB for this. Though I have some idea about MongoDB, I am new to NodeJS. The aim of the projest is to do something like this :
I was planning to implement this using a queue. (Storing all the available students in that course in a queue and assigning the TA-ship to the senior student available in the front of the queue). As soon as he/she is assigned a TA, they are removed from the queue and pushed back into the db with the PresentStatus as 'Hired'. The problem I am facing is, I am not able to understand how I should be implementing the functionalities of the queue using NodeJS. During my research about the approach, I found something related to monq and a blog as well where they have discussed implementing it with Kue(backed by Redis instead), however I am still not able to visualize how this idea should be implemented using queues in NodeJS. Any help would be appreciated.
Upvotes: 0
Views: 832
Reputation: 2701
RabbitMQ is an option you are looking for.
You have to create a message sender and message consumer. The consumer will have a corresponding queue. Once the queue is filled with a message, the consumer will grab it and do it's process. In your scenario, it checks the student's status and then change him/her as hired in your database. What your sender does is that it packages a student's information and put it in the consumer's queue. I can imagine what will be happening in your case: a student submits request on his/her side. The node.js api receive it and pack information. Then it sends it to your customer queue. Your customer will process it if it's free. If it's busy, the information will be waiting in the queue. I recommend you to use json for students' information when different components have to communicate.
Here is the official website of RabbitMQ: https://www.rabbitmq.com/getstarted.html
Hope it helps.
Upvotes: 1