在Perl中使用命名管道在2个进程之间进行通信?

我正在尝试使用命名管道解决此问题:

我有1个进程连续运行。此过程仅应检查命名管道,如果那里没有可用数据。如果没有,我有替换数据(缓存的数据)可用于这种情况。

非常重要的一点是,该1个连续运行的进程不会阻塞,并且如果在命名管道的“另一端”没有附加进程,则该连续运行的进程应该使用缓存的数据。

然后我有第二个过程。此过程可以随意启动,但通常会定期从cron脚本运行。 此过程会将数据转储到命名管道中。

理想情况下,我希望将这些数据仅转储到命名管道中,以等待可供连续运行的进程随时使用。 如果可能,连续过程可以始终保持管道打开,或者在需要数据时可以打开管道。

但是,如果需要,此间歇性运行的进程可以保持其管道打开,直到连续运行的进程处理数据为止。

有什么好主意可以做到这一点吗?我怀疑我可以以某种方式打开管道,即使另一端没有阻塞也没有进程,但是在进程连接到命名管道的另一端并发送数据之前,当然不会有数据。

并且当该过程分离时,即使在分离后进行读取,缓冲的数据是否仍可用于读取应用程序?

评论