亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

隊列中的消息位置/索引(SQS 或 RabbitMQ)

隊列中的消息位置/索引(SQS 或 RabbitMQ)

呼喚遠方 2022-06-30 18:30:13
我有興趣在 FIFO 隊列中查找消息的位置。目標是能夠向用戶顯示“您排在第三位”,然后是“您排在第二位”,然后是“您的請求正在處理中”。我可以訪問 AWS SQS 和 RabbitMQ。我知道我可以得到隊列中的消息總數,我只是不知道我關心的消息在哪里。到目前為止,我已經閱讀了有關排隊技術的文檔,但還沒有看到解決方案,因此還沒有編寫任何代碼。有沒有其他人能夠成功找到單個消息的索引/位置?
查看完整描述

1 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

無法獲取項目的“索引”。

不過,您可以做的是估算等待時間(有趣的是,這個概念與迪士尼樂園在排隊時測量等待時間的方式非常相似):

  1. 測量以下數據點(并知道它們何時發生變化):

    • parallelism- 并行處理多少個項目?

    • processingTime- 處理一件物品需要多長時間?

    • queueLength- 隊列中有多少項目?

  2. 計算估計:

    • waitTimeOfNextItem = queueLength * processingTime / parallelism

例如,如果隊列中有 100 個項目,每個項目大約需要 10 秒來處理,而您一次處理 4 個,則100*10/4處理所有項目需要 250 秒。如果將第 101 個項目放入隊列,您可以估計它將在 250 秒后開始處理。

如果您的processingTime變化很大,您可以進行滾動平均或抽樣等計算,或提供時間范圍(5-10 分鐘),具體取決于您想要的準確度。

雖然您也可以隨機發送“時間卡”項目以進一步完善這一點(本質上是一個純粹用于計算通過系統所需時間的假項目),但您可以只發送此信息與每個項目。


查看完整回答
反對 回復 2022-06-30
  • 1 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號