C# 是";系统.线程.通道“;将解决跨进程应用程序的发布子问题

C# 是";系统.线程.通道“;将解决跨进程应用程序的发布子问题,c#,asp.net-core,system.threading.channels,C#,Asp.net Core,System.threading.channels,我有一个asp.net核心应用程序“a”,它每1分钟在一个文件夹中生成一个文件 应用程序“B”需要一个通知或文件详细说明我们生成的文件以及该文件的一些哈希信息。基于此通知,应用程序“B”希望处理这些文件 我正在考虑一些pub/sub机制,我想要非常轻量级的组件,其中应用程序“A”将发布与文件相关的信息,而应用程序“B”将订阅并侦听 “system.threading.channels”是否可以解决此问题?简短版本:否 System.Threading.Channels是进程中的-在许多方面与队列

我有一个asp.net核心应用程序“a”,它每1分钟在一个文件夹中生成一个文件

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

我正在考虑一些pub/sub机制,我想要非常轻量级的组件,其中应用程序“A”将发布与文件相关的信息,而应用程序“B”将订阅并侦听

“system.threading.channels”是否可以解决此问题?

简短版本:否

System.Threading.Channels
是进程中的-在许多方面与
队列
非常相似,但设计用于
异步
访问;该API的任何部分都不允许IPC

有很多方法可以跨流程(可能是跨机器)完成此操作,但想到的选项是:

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

      System.Threading.Channels
      是进程中的-在许多方面与
      队列
      非常相似,但设计用于
      异步
      访问;该API的任何部分都不允许IPC

      有很多方法可以跨流程(可能是跨机器)完成此操作,但想到的选项是:

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

      你所描述的似乎与酒吧/酒吧无关。@PanagiotisKanavos对我来说,这听起来很像酒吧/酒吧。。。与“频道”无关,谢谢。这就是我的想法。没有pub/sub有什么办法?如果可能,我需要一些零安装的pub/sub。@user584018您使用的是
      pub/sub
      ,好像它是一个特定的库或技术。它不是,它是一个非常广泛的问题描述,甚至可以涵盖发送。。。。纸质选票。对于初学者,您可以使用FileSystemWatcher在创建新文件时进行检查。更好的方法可能是让一个应用程序调用另一个应用程序的HTTP端点并发送整个文件。您所描述的似乎与pub/sub无关。@PanagiotisKanavos在我看来非常像pub/sub。。。与“频道”无关,谢谢。这就是我的想法。没有pub/sub有什么办法?如果可能,我需要一些零安装的pub/sub。@user584018您使用的是
      pub/sub
      ,好像它是一个特定的库或技术。它不是,它是一个非常广泛的问题描述,甚至可以涵盖发送。。。。纸质选票。对于初学者,您可以使用FileSystemWatcher在创建新文件时进行检查。更好的方法可能是让一个应用程序调用另一个应用程序的HTTP端点并发送整个文件。