簡體   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