gpt4 book ai didi

c# - 如果队列已满,MessageQueue 是否会阻塞发送

转载 作者:行者123 更新时间:2023-11-29 11:58:30 25 4
gpt4 key购买 nike

我一直在浏览有关消息队列的文档,但似乎找不到我正在寻找的信息。我想要完成的任务是在每次调用 MySQL 数据库过程时记录该过程的名称,以便跟踪每个过程的调用频率。我的想法是在调用时将名称记录到 MessageQueue 中,并让服务处理队列以定期对调用进行计数。这是为了避免为每个过程调用向数据库写入附加记录。由于这不是关键功能,因此如果队列已满,我希望能够跳过日志记录。我正在寻找以下信息:

  • 如果队列已满,MessageQueue.Send 是否会阻塞?
  • MessageQueue 将消息存储在内存中还是磁盘上?我想将这一切保留在内存中,因此如果唯一的选择是写入文件,那么我认为这不是我们正在寻找的。

此外,如果我在这里忽略了更简单的解决方案,请告诉我。

最佳答案

不,满队列不会阻塞。

  • 发送到已满的本地队列将返回异常。
  • 发送到已满的远程队列将丢弃该消息,或将其移至死信队列(视情况而定)。

MSMQ Express 消息仅驻留在内存中。当系统面临内存压力时,它们可能会被写入磁盘,但它们不是持久的 - 重新启动将丢失它们。

关于c# - 如果队列已满,MessageQueue 是否会阻塞发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32787229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com