0
我在處理CPU綁定任務的NodeJS上編寫服務。主要的想法是很簡單:停止RabbitMQ消費者進程當前消息
- 客戶(瀏覽器)發送請求
- 網絡服務器(的NodeJS + ExpressJS)處理請求:生成ID,增加了一個任務與該ID來的RabbitMQ和回覆客戶端用那個ID。
- 此外Web服務器添加任務Redis的服務器ID作爲密鑰,並且
{status: active}
作爲一種價值 - 消費者在大約一分鐘和更新Redis的條目以獲取結果處理任務。
- 客戶端使用此ID來檢查相應任務的狀態。
問題:我希望消費者如果客戶已停止詢問該任務仍在運行的服務器停止處理任務的第4步。我如何用RabbitMQ做到這一點?
P.S:我試圖清除隊列,但面臨着一些問題:隊列不清除如果消息沒有被消費者認可。作爲難過的here,這隻會在我的CPU綁定任務完成後纔會發生。