是"system.threading.channels"将解决跨进程应用程序的pub sub问题



我有一个asp.net核心应用程序"A";其在文件夹中每1分钟生成一个文件。

应用程序";B";想要一个通知或文件,详细说明我们生成的文件以及该文件的一些哈希信息。基于该通知;B";想要处理这些文件。

我正在考虑一些发布/订阅机制,并且我想要重量非常轻的组件;A";将公布文件相关信息;B";将订阅并收听。

是";system.threading.channels";会解决这个问题吗?

短版本:无

System.Threading.Channels是进程内的-在许多方面与Queue<T>非常相似,但专为async访问而设计;API的任何部分都不允许IPC。

有很多方法可以实现这种跨流程(以及潜在的跨机器(,但脑海中浮现的选项是:

  • 让其中一个节点设置套接字服务器,并让另一个节点通过套接字连接;用这种方式互相发送信息
  • 相同,但使用命名管道而不是套接字
  • 相同,但有一个http服务器;kestrel很容易设置为服务器
  • 使用外部消息代理或管道作为中介,并使两个节点都作为客户端连接到该代理
  • 只检测文件系统的更改

相关内容

最新更新