消息队列中的多条消息

Multiple messages in message queue

这可能是一个非常愚蠢的问题,但谷歌搜索无法解决问题,所以请继续。我正在编写一个程序,使用消息队列将一系列值发送到不同的进程。我所做的研究表明我使用 msgsnd() 将消息存储在队列中并使用 msgrcv() 接收消息。我需要在队列中存储一个起始编号和一个结束编号。所以我的问题是我可以在此队列中存储多条消息吗?如果可以,我该如何存储和检索它们? TIA 为您提供所有帮助。

queue 的概念意味着您可以将内容放入 (msgsnd),这会在队列中创建一条消息。要接收一条消息,您必须致电 msgrcv。每次接收通常只会 return 条消息,因此如果您发送 n 条消息,则必须收到 n 条消息。

队列通常被视为 FIFO(先进先出),因此第一个 msgsnd 创建的消息将是 msgrcv 编辑的第一个 return 消息。 如果您在网络上运行消息队列(and/or 在集群中),这会有点削弱。由于网络 latency/failover/retries 等消息可能会乱序,因此通常建议构建包含所有必要信息的消息,以便在这些情况下正确处理。