【问题标题】:Fully robust message queue in Linux/BASHLinux/BASH 中完全健壮的消息队列
【发布时间】:2017-03-08 17:07:54
【问题描述】:

我正在尝试使用命名管道实现消息队列系统。从我用过的管道中读取:

pump_read=1

while [[ ${pump_read} -eq 1]]; do

IFS="|" read pump_f1 pump_f2 pump_f3 < queuefile

echo "${pump_f1}|${pump_f1}|${pump_f3} >> pump.log

done

要写入我使用过的命名管道

echo "x|y|z" | ssh user@host "cat > queuefile"

我使用这种方法是因为读取器和写入器可能不在同一个主机上。大多数情况下这是可行的,但相当频繁地我会在我的“||”日志中获得行好像在管道中写入了一个空行。我也有一些时候消息会消失,就好像它们从未进入管道一样。我看不出消息丢失或空白的原因。

有没有人知道我需要在这里查看什么以确保消息不会丢失?我是否正在考虑用 C/C++ 而不是 BASH 编写代码?在某些时候,我可能想将消息异步发布到队列中,由于读/写过程的阻塞,我不确定命名管道是否可行,但是通常这一切都会很快发生,阻塞不会是问题。

【问题讨论】:

    标签: linux bash message-queue named-pipes


    【解决方案1】:

    我认为你最好使用现有的消息/作业队列而不是自己编写。

    这是一个很好的列表:http://queues.io/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-17
      • 2018-01-20
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 2018-09-09
      相关资源
      最近更新 更多